/*
 * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * The Universal Permissive License (UPL), Version 1.0
 *
 * Subject to the condition set forth below, permission is hereby granted to any
 * person obtaining a copy of this software, associated documentation and/or
 * data (collectively the "Software"), free of charge and under any and all
 * copyright rights in the Software, and any and all patent rights owned or
 * freely licensable by each licensor hereunder covering either (i) the
 * unmodified Software as contributed to or provided by such licensor, or (ii)
 * the Larger Works (as defined below), to deal in both
 *
 * (a) the Software, and
 *
 * (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if
 * one is included with the Software each a "Larger Work" to which the Software
 * is contributed by such licensors),
 *
 * without restriction, including without limitation the rights to copy, create
 * derivative works of, display, perform, and distribute the Software and make,
 * use, sell, offer for sale, import, export, have made, and have sold the
 * Software and the Larger Work(s), and to sublicense the foregoing rights on
 * either these or other terms.
 *
 * This license is subject to the following condition:
 *
 * The above copyright notice and either this complete permission notice or at a
 * minimum a reference to the UPL must be included in all copies or substantial
 * portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
/* Copyright (c) 2018 Unicode, Inc.
 * Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
 * For terms of use, see http://www.unicode.org/terms_of_use.html
 */

package com.oracle.truffle.regex.charset;

import org.graalvm.collections.EconomicMap;

class UnicodePropertyData {

    static final EconomicMap<String, String> PROPERTY_ALIASES = EconomicMap.create(100);
    static final EconomicMap<String, String> GENERAL_CATEGORY_ALIASES = EconomicMap.create(80);
    static final EconomicMap<String, String> SCRIPT_ALIASES = EconomicMap.create(304);
    private static final EconomicMap<String, CodePointSet> SET_ENCODINGS = EconomicMap.create(389);

    public static CodePointSet retrieveProperty(String propertySpec) {
        if (!SET_ENCODINGS.containsKey(propertySpec)) {
            throw new IllegalArgumentException("Unsupported Unicode character property escape");
        }
        return SET_ENCODINGS.get(propertySpec);
    }

    static {
        PROPERTY_ALIASES.put("AHex", "AHex");
        PROPERTY_ALIASES.put("ASCII", "ASCII");
        PROPERTY_ALIASES.put("ASCII_Hex_Digit", "AHex");
        PROPERTY_ALIASES.put("Alpha", "Alpha");
        PROPERTY_ALIASES.put("Alphabetic", "Alpha");
        PROPERTY_ALIASES.put("Any", "Any");
        PROPERTY_ALIASES.put("Assigned", "Assigned");
        PROPERTY_ALIASES.put("Bidi_C", "Bidi_C");
        PROPERTY_ALIASES.put("Bidi_Control", "Bidi_C");
        PROPERTY_ALIASES.put("Bidi_M", "Bidi_M");
        PROPERTY_ALIASES.put("Bidi_Mirrored", "Bidi_M");
        PROPERTY_ALIASES.put("CI", "CI");
        PROPERTY_ALIASES.put("CWCF", "CWCF");
        PROPERTY_ALIASES.put("CWCM", "CWCM");
        PROPERTY_ALIASES.put("CWKCF", "CWKCF");
        PROPERTY_ALIASES.put("CWL", "CWL");
        PROPERTY_ALIASES.put("CWT", "CWT");
        PROPERTY_ALIASES.put("CWU", "CWU");
        PROPERTY_ALIASES.put("Case_Ignorable", "CI");
        PROPERTY_ALIASES.put("Cased", "Cased");
        PROPERTY_ALIASES.put("Changes_When_Casefolded", "CWCF");
        PROPERTY_ALIASES.put("Changes_When_Casemapped", "CWCM");
        PROPERTY_ALIASES.put("Changes_When_Lowercased", "CWL");
        PROPERTY_ALIASES.put("Changes_When_NFKC_Casefolded", "CWKCF");
        PROPERTY_ALIASES.put("Changes_When_Titlecased", "CWT");
        PROPERTY_ALIASES.put("Changes_When_Uppercased", "CWU");
        PROPERTY_ALIASES.put("DI", "DI");
        PROPERTY_ALIASES.put("Dash", "Dash");
        PROPERTY_ALIASES.put("Default_Ignorable_Code_Point", "DI");
        PROPERTY_ALIASES.put("Dep", "Dep");
        PROPERTY_ALIASES.put("Deprecated", "Dep");
        PROPERTY_ALIASES.put("Dia", "Dia");
        PROPERTY_ALIASES.put("Diacritic", "Dia");
        PROPERTY_ALIASES.put("Emoji", "Emoji");
        PROPERTY_ALIASES.put("Emoji_Component", "Emoji_Component");
        PROPERTY_ALIASES.put("Emoji_Modifier", "Emoji_Modifier");
        PROPERTY_ALIASES.put("Emoji_Modifier_Base", "Emoji_Modifier_Base");
        PROPERTY_ALIASES.put("Emoji_Presentation", "Emoji_Presentation");
        PROPERTY_ALIASES.put("Ext", "Ext");
        PROPERTY_ALIASES.put("Extended_Pictographic", "Extended_Pictographic");
        PROPERTY_ALIASES.put("Extender", "Ext");
        PROPERTY_ALIASES.put("General_Category", "gc");
        PROPERTY_ALIASES.put("Gr_Base", "Gr_Base");
        PROPERTY_ALIASES.put("Gr_Ext", "Gr_Ext");
        PROPERTY_ALIASES.put("Grapheme_Base", "Gr_Base");
        PROPERTY_ALIASES.put("Grapheme_Extend", "Gr_Ext");
        PROPERTY_ALIASES.put("Hex", "Hex");
        PROPERTY_ALIASES.put("Hex_Digit", "Hex");
        PROPERTY_ALIASES.put("IDC", "IDC");
        PROPERTY_ALIASES.put("IDS", "IDS");
        PROPERTY_ALIASES.put("IDSB", "IDSB");
        PROPERTY_ALIASES.put("IDST", "IDST");
        PROPERTY_ALIASES.put("IDS_Binary_Operator", "IDSB");
        PROPERTY_ALIASES.put("IDS_Trinary_Operator", "IDST");
        PROPERTY_ALIASES.put("ID_Continue", "IDC");
        PROPERTY_ALIASES.put("ID_Start", "IDS");
        PROPERTY_ALIASES.put("Ideo", "Ideo");
        PROPERTY_ALIASES.put("Ideographic", "Ideo");
        PROPERTY_ALIASES.put("Join_C", "Join_C");
        PROPERTY_ALIASES.put("Join_Control", "Join_C");
        PROPERTY_ALIASES.put("LOE", "LOE");
        PROPERTY_ALIASES.put("Logical_Order_Exception", "LOE");
        PROPERTY_ALIASES.put("Lower", "Lower");
        PROPERTY_ALIASES.put("Lowercase", "Lower");
        PROPERTY_ALIASES.put("Math", "Math");
        PROPERTY_ALIASES.put("NChar", "NChar");
        PROPERTY_ALIASES.put("Noncharacter_Code_Point", "NChar");
        PROPERTY_ALIASES.put("Pat_Syn", "Pat_Syn");
        PROPERTY_ALIASES.put("Pat_WS", "Pat_WS");
        PROPERTY_ALIASES.put("Pattern_Syntax", "Pat_Syn");
        PROPERTY_ALIASES.put("Pattern_White_Space", "Pat_WS");
        PROPERTY_ALIASES.put("QMark", "QMark");
        PROPERTY_ALIASES.put("Quotation_Mark", "QMark");
        PROPERTY_ALIASES.put("RI", "RI");
        PROPERTY_ALIASES.put("Radical", "Radical");
        PROPERTY_ALIASES.put("Regional_Indicator", "RI");
        PROPERTY_ALIASES.put("SD", "SD");
        PROPERTY_ALIASES.put("STerm", "STerm");
        PROPERTY_ALIASES.put("Script", "sc");
        PROPERTY_ALIASES.put("Script_Extensions", "scx");
        PROPERTY_ALIASES.put("Sentence_Terminal", "STerm");
        PROPERTY_ALIASES.put("Soft_Dotted", "SD");
        PROPERTY_ALIASES.put("Term", "Term");
        PROPERTY_ALIASES.put("Terminal_Punctuation", "Term");
        PROPERTY_ALIASES.put("UIdeo", "UIdeo");
        PROPERTY_ALIASES.put("Unified_Ideograph", "UIdeo");
        PROPERTY_ALIASES.put("Upper", "Upper");
        PROPERTY_ALIASES.put("Uppercase", "Upper");
        PROPERTY_ALIASES.put("VS", "VS");
        PROPERTY_ALIASES.put("Variation_Selector", "VS");
        PROPERTY_ALIASES.put("WSpace", "WSpace");
        PROPERTY_ALIASES.put("White_Space", "WSpace");
        PROPERTY_ALIASES.put("XIDC", "XIDC");
        PROPERTY_ALIASES.put("XIDS", "XIDS");
        PROPERTY_ALIASES.put("XID_Continue", "XIDC");
        PROPERTY_ALIASES.put("XID_Start", "XIDS");
        PROPERTY_ALIASES.put("gc", "gc");
        PROPERTY_ALIASES.put("sc", "sc");
        PROPERTY_ALIASES.put("scx", "scx");
        PROPERTY_ALIASES.put("space", "WSpace");

        GENERAL_CATEGORY_ALIASES.put("C", "C");
        GENERAL_CATEGORY_ALIASES.put("Cased_Letter", "LC");
        GENERAL_CATEGORY_ALIASES.put("Cc", "Cc");
        GENERAL_CATEGORY_ALIASES.put("Cf", "Cf");
        GENERAL_CATEGORY_ALIASES.put("Close_Punctuation", "Pe");
        GENERAL_CATEGORY_ALIASES.put("Cn", "Cn");
        GENERAL_CATEGORY_ALIASES.put("Co", "Co");
        GENERAL_CATEGORY_ALIASES.put("Combining_Mark", "M");
        GENERAL_CATEGORY_ALIASES.put("Connector_Punctuation", "Pc");
        GENERAL_CATEGORY_ALIASES.put("Control", "Cc");
        GENERAL_CATEGORY_ALIASES.put("Cs", "Cs");
        GENERAL_CATEGORY_ALIASES.put("Currency_Symbol", "Sc");
        GENERAL_CATEGORY_ALIASES.put("Dash_Punctuation", "Pd");
        GENERAL_CATEGORY_ALIASES.put("Decimal_Number", "Nd");
        GENERAL_CATEGORY_ALIASES.put("Enclosing_Mark", "Me");
        GENERAL_CATEGORY_ALIASES.put("Final_Punctuation", "Pf");
        GENERAL_CATEGORY_ALIASES.put("Format", "Cf");
        GENERAL_CATEGORY_ALIASES.put("Initial_Punctuation", "Pi");
        GENERAL_CATEGORY_ALIASES.put("L", "L");
        GENERAL_CATEGORY_ALIASES.put("LC", "LC");
        GENERAL_CATEGORY_ALIASES.put("Letter", "L");
        GENERAL_CATEGORY_ALIASES.put("Letter_Number", "Nl");
        GENERAL_CATEGORY_ALIASES.put("Line_Separator", "Zl");
        GENERAL_CATEGORY_ALIASES.put("Ll", "Ll");
        GENERAL_CATEGORY_ALIASES.put("Lm", "Lm");
        GENERAL_CATEGORY_ALIASES.put("Lo", "Lo");
        GENERAL_CATEGORY_ALIASES.put("Lowercase_Letter", "Ll");
        GENERAL_CATEGORY_ALIASES.put("Lt", "Lt");
        GENERAL_CATEGORY_ALIASES.put("Lu", "Lu");
        GENERAL_CATEGORY_ALIASES.put("M", "M");
        GENERAL_CATEGORY_ALIASES.put("Mark", "M");
        GENERAL_CATEGORY_ALIASES.put("Math_Symbol", "Sm");
        GENERAL_CATEGORY_ALIASES.put("Mc", "Mc");
        GENERAL_CATEGORY_ALIASES.put("Me", "Me");
        GENERAL_CATEGORY_ALIASES.put("Mn", "Mn");
        GENERAL_CATEGORY_ALIASES.put("Modifier_Letter", "Lm");
        GENERAL_CATEGORY_ALIASES.put("Modifier_Symbol", "Sk");
        GENERAL_CATEGORY_ALIASES.put("N", "N");
        GENERAL_CATEGORY_ALIASES.put("Nd", "Nd");
        GENERAL_CATEGORY_ALIASES.put("Nl", "Nl");
        GENERAL_CATEGORY_ALIASES.put("No", "No");
        GENERAL_CATEGORY_ALIASES.put("Nonspacing_Mark", "Mn");
        GENERAL_CATEGORY_ALIASES.put("Number", "N");
        GENERAL_CATEGORY_ALIASES.put("Open_Punctuation", "Ps");
        GENERAL_CATEGORY_ALIASES.put("Other", "C");
        GENERAL_CATEGORY_ALIASES.put("Other_Letter", "Lo");
        GENERAL_CATEGORY_ALIASES.put("Other_Number", "No");
        GENERAL_CATEGORY_ALIASES.put("Other_Punctuation", "Po");
        GENERAL_CATEGORY_ALIASES.put("Other_Symbol", "So");
        GENERAL_CATEGORY_ALIASES.put("P", "P");
        GENERAL_CATEGORY_ALIASES.put("Paragraph_Separator", "Zp");
        GENERAL_CATEGORY_ALIASES.put("Pc", "Pc");
        GENERAL_CATEGORY_ALIASES.put("Pd", "Pd");
        GENERAL_CATEGORY_ALIASES.put("Pe", "Pe");
        GENERAL_CATEGORY_ALIASES.put("Pf", "Pf");
        GENERAL_CATEGORY_ALIASES.put("Pi", "Pi");
        GENERAL_CATEGORY_ALIASES.put("Po", "Po");
        GENERAL_CATEGORY_ALIASES.put("Private_Use", "Co");
        GENERAL_CATEGORY_ALIASES.put("Ps", "Ps");
        GENERAL_CATEGORY_ALIASES.put("Punctuation", "P");
        GENERAL_CATEGORY_ALIASES.put("S", "S");
        GENERAL_CATEGORY_ALIASES.put("Sc", "Sc");
        GENERAL_CATEGORY_ALIASES.put("Separator", "Z");
        GENERAL_CATEGORY_ALIASES.put("Sk", "Sk");
        GENERAL_CATEGORY_ALIASES.put("Sm", "Sm");
        GENERAL_CATEGORY_ALIASES.put("So", "So");
        GENERAL_CATEGORY_ALIASES.put("Space_Separator", "Zs");
        GENERAL_CATEGORY_ALIASES.put("Spacing_Mark", "Mc");
        GENERAL_CATEGORY_ALIASES.put("Surrogate", "Cs");
        GENERAL_CATEGORY_ALIASES.put("Symbol", "S");
        GENERAL_CATEGORY_ALIASES.put("Titlecase_Letter", "Lt");
        GENERAL_CATEGORY_ALIASES.put("Unassigned", "Cn");
        GENERAL_CATEGORY_ALIASES.put("Uppercase_Letter", "Lu");
        GENERAL_CATEGORY_ALIASES.put("Z", "Z");
        GENERAL_CATEGORY_ALIASES.put("Zl", "Zl");
        GENERAL_CATEGORY_ALIASES.put("Zp", "Zp");
        GENERAL_CATEGORY_ALIASES.put("Zs", "Zs");
        GENERAL_CATEGORY_ALIASES.put("cntrl", "Cc");
        GENERAL_CATEGORY_ALIASES.put("digit", "Nd");
        GENERAL_CATEGORY_ALIASES.put("punct", "P");

        SCRIPT_ALIASES.put("Adlam", "Adlm");
        SCRIPT_ALIASES.put("Adlm", "Adlm");
        SCRIPT_ALIASES.put("Aghb", "Aghb");
        SCRIPT_ALIASES.put("Ahom", "Ahom");
        SCRIPT_ALIASES.put("Anatolian_Hieroglyphs", "Hluw");
        SCRIPT_ALIASES.put("Arab", "Arab");
        SCRIPT_ALIASES.put("Arabic", "Arab");
        SCRIPT_ALIASES.put("Armenian", "Armn");
        SCRIPT_ALIASES.put("Armi", "Armi");
        SCRIPT_ALIASES.put("Armn", "Armn");
        SCRIPT_ALIASES.put("Avestan", "Avst");
        SCRIPT_ALIASES.put("Avst", "Avst");
        SCRIPT_ALIASES.put("Bali", "Bali");
        SCRIPT_ALIASES.put("Balinese", "Bali");
        SCRIPT_ALIASES.put("Bamu", "Bamu");
        SCRIPT_ALIASES.put("Bamum", "Bamu");
        SCRIPT_ALIASES.put("Bass", "Bass");
        SCRIPT_ALIASES.put("Bassa_Vah", "Bass");
        SCRIPT_ALIASES.put("Batak", "Batk");
        SCRIPT_ALIASES.put("Batk", "Batk");
        SCRIPT_ALIASES.put("Beng", "Beng");
        SCRIPT_ALIASES.put("Bengali", "Beng");
        SCRIPT_ALIASES.put("Bhaiksuki", "Bhks");
        SCRIPT_ALIASES.put("Bhks", "Bhks");
        SCRIPT_ALIASES.put("Bopo", "Bopo");
        SCRIPT_ALIASES.put("Bopomofo", "Bopo");
        SCRIPT_ALIASES.put("Brah", "Brah");
        SCRIPT_ALIASES.put("Brahmi", "Brah");
        SCRIPT_ALIASES.put("Brai", "Brai");
        SCRIPT_ALIASES.put("Braille", "Brai");
        SCRIPT_ALIASES.put("Bugi", "Bugi");
        SCRIPT_ALIASES.put("Buginese", "Bugi");
        SCRIPT_ALIASES.put("Buhd", "Buhd");
        SCRIPT_ALIASES.put("Buhid", "Buhd");
        SCRIPT_ALIASES.put("Cakm", "Cakm");
        SCRIPT_ALIASES.put("Canadian_Aboriginal", "Cans");
        SCRIPT_ALIASES.put("Cans", "Cans");
        SCRIPT_ALIASES.put("Cari", "Cari");
        SCRIPT_ALIASES.put("Carian", "Cari");
        SCRIPT_ALIASES.put("Caucasian_Albanian", "Aghb");
        SCRIPT_ALIASES.put("Chakma", "Cakm");
        SCRIPT_ALIASES.put("Cham", "Cham");
        SCRIPT_ALIASES.put("Cher", "Cher");
        SCRIPT_ALIASES.put("Cherokee", "Cher");
        SCRIPT_ALIASES.put("Common", "Zyyy");
        SCRIPT_ALIASES.put("Copt", "Copt");
        SCRIPT_ALIASES.put("Coptic", "Copt");
        SCRIPT_ALIASES.put("Cprt", "Cprt");
        SCRIPT_ALIASES.put("Cuneiform", "Xsux");
        SCRIPT_ALIASES.put("Cypriot", "Cprt");
        SCRIPT_ALIASES.put("Cyrillic", "Cyrl");
        SCRIPT_ALIASES.put("Cyrl", "Cyrl");
        SCRIPT_ALIASES.put("Deseret", "Dsrt");
        SCRIPT_ALIASES.put("Deva", "Deva");
        SCRIPT_ALIASES.put("Devanagari", "Deva");
        SCRIPT_ALIASES.put("Dogr", "Dogr");
        SCRIPT_ALIASES.put("Dogra", "Dogr");
        SCRIPT_ALIASES.put("Dsrt", "Dsrt");
        SCRIPT_ALIASES.put("Dupl", "Dupl");
        SCRIPT_ALIASES.put("Duployan", "Dupl");
        SCRIPT_ALIASES.put("Egyp", "Egyp");
        SCRIPT_ALIASES.put("Egyptian_Hieroglyphs", "Egyp");
        SCRIPT_ALIASES.put("Elba", "Elba");
        SCRIPT_ALIASES.put("Elbasan", "Elba");
        SCRIPT_ALIASES.put("Elym", "Elym");
        SCRIPT_ALIASES.put("Elymaic", "Elym");
        SCRIPT_ALIASES.put("Ethi", "Ethi");
        SCRIPT_ALIASES.put("Ethiopic", "Ethi");
        SCRIPT_ALIASES.put("Geor", "Geor");
        SCRIPT_ALIASES.put("Georgian", "Geor");
        SCRIPT_ALIASES.put("Glag", "Glag");
        SCRIPT_ALIASES.put("Glagolitic", "Glag");
        SCRIPT_ALIASES.put("Gong", "Gong");
        SCRIPT_ALIASES.put("Gonm", "Gonm");
        SCRIPT_ALIASES.put("Goth", "Goth");
        SCRIPT_ALIASES.put("Gothic", "Goth");
        SCRIPT_ALIASES.put("Gran", "Gran");
        SCRIPT_ALIASES.put("Grantha", "Gran");
        SCRIPT_ALIASES.put("Greek", "Grek");
        SCRIPT_ALIASES.put("Grek", "Grek");
        SCRIPT_ALIASES.put("Gujarati", "Gujr");
        SCRIPT_ALIASES.put("Gujr", "Gujr");
        SCRIPT_ALIASES.put("Gunjala_Gondi", "Gong");
        SCRIPT_ALIASES.put("Gurmukhi", "Guru");
        SCRIPT_ALIASES.put("Guru", "Guru");
        SCRIPT_ALIASES.put("Han", "Hani");
        SCRIPT_ALIASES.put("Hang", "Hang");
        SCRIPT_ALIASES.put("Hangul", "Hang");
        SCRIPT_ALIASES.put("Hani", "Hani");
        SCRIPT_ALIASES.put("Hanifi_Rohingya", "Rohg");
        SCRIPT_ALIASES.put("Hano", "Hano");
        SCRIPT_ALIASES.put("Hanunoo", "Hano");
        SCRIPT_ALIASES.put("Hatr", "Hatr");
        SCRIPT_ALIASES.put("Hatran", "Hatr");
        SCRIPT_ALIASES.put("Hebr", "Hebr");
        SCRIPT_ALIASES.put("Hebrew", "Hebr");
        SCRIPT_ALIASES.put("Hira", "Hira");
        SCRIPT_ALIASES.put("Hiragana", "Hira");
        SCRIPT_ALIASES.put("Hluw", "Hluw");
        SCRIPT_ALIASES.put("Hmng", "Hmng");
        SCRIPT_ALIASES.put("Hmnp", "Hmnp");
        SCRIPT_ALIASES.put("Hrkt", "Hrkt");
        SCRIPT_ALIASES.put("Hung", "Hung");
        SCRIPT_ALIASES.put("Imperial_Aramaic", "Armi");
        SCRIPT_ALIASES.put("Inherited", "Zinh");
        SCRIPT_ALIASES.put("Inscriptional_Pahlavi", "Phli");
        SCRIPT_ALIASES.put("Inscriptional_Parthian", "Prti");
        SCRIPT_ALIASES.put("Ital", "Ital");
        SCRIPT_ALIASES.put("Java", "Java");
        SCRIPT_ALIASES.put("Javanese", "Java");
        SCRIPT_ALIASES.put("Kaithi", "Kthi");
        SCRIPT_ALIASES.put("Kali", "Kali");
        SCRIPT_ALIASES.put("Kana", "Kana");
        SCRIPT_ALIASES.put("Kannada", "Knda");
        SCRIPT_ALIASES.put("Katakana", "Kana");
        SCRIPT_ALIASES.put("Katakana_Or_Hiragana", "Hrkt");
        SCRIPT_ALIASES.put("Kayah_Li", "Kali");
        SCRIPT_ALIASES.put("Khar", "Khar");
        SCRIPT_ALIASES.put("Kharoshthi", "Khar");
        SCRIPT_ALIASES.put("Khmer", "Khmr");
        SCRIPT_ALIASES.put("Khmr", "Khmr");
        SCRIPT_ALIASES.put("Khoj", "Khoj");
        SCRIPT_ALIASES.put("Khojki", "Khoj");
        SCRIPT_ALIASES.put("Khudawadi", "Sind");
        SCRIPT_ALIASES.put("Knda", "Knda");
        SCRIPT_ALIASES.put("Kthi", "Kthi");
        SCRIPT_ALIASES.put("Lana", "Lana");
        SCRIPT_ALIASES.put("Lao", "Laoo");
        SCRIPT_ALIASES.put("Laoo", "Laoo");
        SCRIPT_ALIASES.put("Latin", "Latn");
        SCRIPT_ALIASES.put("Latn", "Latn");
        SCRIPT_ALIASES.put("Lepc", "Lepc");
        SCRIPT_ALIASES.put("Lepcha", "Lepc");
        SCRIPT_ALIASES.put("Limb", "Limb");
        SCRIPT_ALIASES.put("Limbu", "Limb");
        SCRIPT_ALIASES.put("Lina", "Lina");
        SCRIPT_ALIASES.put("Linb", "Linb");
        SCRIPT_ALIASES.put("Linear_A", "Lina");
        SCRIPT_ALIASES.put("Linear_B", "Linb");
        SCRIPT_ALIASES.put("Lisu", "Lisu");
        SCRIPT_ALIASES.put("Lyci", "Lyci");
        SCRIPT_ALIASES.put("Lycian", "Lyci");
        SCRIPT_ALIASES.put("Lydi", "Lydi");
        SCRIPT_ALIASES.put("Lydian", "Lydi");
        SCRIPT_ALIASES.put("Mahajani", "Mahj");
        SCRIPT_ALIASES.put("Mahj", "Mahj");
        SCRIPT_ALIASES.put("Maka", "Maka");
        SCRIPT_ALIASES.put("Makasar", "Maka");
        SCRIPT_ALIASES.put("Malayalam", "Mlym");
        SCRIPT_ALIASES.put("Mand", "Mand");
        SCRIPT_ALIASES.put("Mandaic", "Mand");
        SCRIPT_ALIASES.put("Mani", "Mani");
        SCRIPT_ALIASES.put("Manichaean", "Mani");
        SCRIPT_ALIASES.put("Marc", "Marc");
        SCRIPT_ALIASES.put("Marchen", "Marc");
        SCRIPT_ALIASES.put("Masaram_Gondi", "Gonm");
        SCRIPT_ALIASES.put("Medefaidrin", "Medf");
        SCRIPT_ALIASES.put("Medf", "Medf");
        SCRIPT_ALIASES.put("Meetei_Mayek", "Mtei");
        SCRIPT_ALIASES.put("Mend", "Mend");
        SCRIPT_ALIASES.put("Mende_Kikakui", "Mend");
        SCRIPT_ALIASES.put("Merc", "Merc");
        SCRIPT_ALIASES.put("Mero", "Mero");
        SCRIPT_ALIASES.put("Meroitic_Cursive", "Merc");
        SCRIPT_ALIASES.put("Meroitic_Hieroglyphs", "Mero");
        SCRIPT_ALIASES.put("Miao", "Plrd");
        SCRIPT_ALIASES.put("Mlym", "Mlym");
        SCRIPT_ALIASES.put("Modi", "Modi");
        SCRIPT_ALIASES.put("Mong", "Mong");
        SCRIPT_ALIASES.put("Mongolian", "Mong");
        SCRIPT_ALIASES.put("Mro", "Mroo");
        SCRIPT_ALIASES.put("Mroo", "Mroo");
        SCRIPT_ALIASES.put("Mtei", "Mtei");
        SCRIPT_ALIASES.put("Mult", "Mult");
        SCRIPT_ALIASES.put("Multani", "Mult");
        SCRIPT_ALIASES.put("Myanmar", "Mymr");
        SCRIPT_ALIASES.put("Mymr", "Mymr");
        SCRIPT_ALIASES.put("Nabataean", "Nbat");
        SCRIPT_ALIASES.put("Nand", "Nand");
        SCRIPT_ALIASES.put("Nandinagari", "Nand");
        SCRIPT_ALIASES.put("Narb", "Narb");
        SCRIPT_ALIASES.put("Nbat", "Nbat");
        SCRIPT_ALIASES.put("New_Tai_Lue", "Talu");
        SCRIPT_ALIASES.put("Newa", "Newa");
        SCRIPT_ALIASES.put("Nko", "Nkoo");
        SCRIPT_ALIASES.put("Nkoo", "Nkoo");
        SCRIPT_ALIASES.put("Nshu", "Nshu");
        SCRIPT_ALIASES.put("Nushu", "Nshu");
        SCRIPT_ALIASES.put("Nyiakeng_Puachue_Hmong", "Hmnp");
        SCRIPT_ALIASES.put("Ogam", "Ogam");
        SCRIPT_ALIASES.put("Ogham", "Ogam");
        SCRIPT_ALIASES.put("Ol_Chiki", "Olck");
        SCRIPT_ALIASES.put("Olck", "Olck");
        SCRIPT_ALIASES.put("Old_Hungarian", "Hung");
        SCRIPT_ALIASES.put("Old_Italic", "Ital");
        SCRIPT_ALIASES.put("Old_North_Arabian", "Narb");
        SCRIPT_ALIASES.put("Old_Permic", "Perm");
        SCRIPT_ALIASES.put("Old_Persian", "Xpeo");
        SCRIPT_ALIASES.put("Old_Sogdian", "Sogo");
        SCRIPT_ALIASES.put("Old_South_Arabian", "Sarb");
        SCRIPT_ALIASES.put("Old_Turkic", "Orkh");
        SCRIPT_ALIASES.put("Oriya", "Orya");
        SCRIPT_ALIASES.put("Orkh", "Orkh");
        SCRIPT_ALIASES.put("Orya", "Orya");
        SCRIPT_ALIASES.put("Osage", "Osge");
        SCRIPT_ALIASES.put("Osge", "Osge");
        SCRIPT_ALIASES.put("Osma", "Osma");
        SCRIPT_ALIASES.put("Osmanya", "Osma");
        SCRIPT_ALIASES.put("Pahawh_Hmong", "Hmng");
        SCRIPT_ALIASES.put("Palm", "Palm");
        SCRIPT_ALIASES.put("Palmyrene", "Palm");
        SCRIPT_ALIASES.put("Pau_Cin_Hau", "Pauc");
        SCRIPT_ALIASES.put("Pauc", "Pauc");
        SCRIPT_ALIASES.put("Perm", "Perm");
        SCRIPT_ALIASES.put("Phag", "Phag");
        SCRIPT_ALIASES.put("Phags_Pa", "Phag");
        SCRIPT_ALIASES.put("Phli", "Phli");
        SCRIPT_ALIASES.put("Phlp", "Phlp");
        SCRIPT_ALIASES.put("Phnx", "Phnx");
        SCRIPT_ALIASES.put("Phoenician", "Phnx");
        SCRIPT_ALIASES.put("Plrd", "Plrd");
        SCRIPT_ALIASES.put("Prti", "Prti");
        SCRIPT_ALIASES.put("Psalter_Pahlavi", "Phlp");
        SCRIPT_ALIASES.put("Qaac", "Copt");
        SCRIPT_ALIASES.put("Qaai", "Zinh");
        SCRIPT_ALIASES.put("Rejang", "Rjng");
        SCRIPT_ALIASES.put("Rjng", "Rjng");
        SCRIPT_ALIASES.put("Rohg", "Rohg");
        SCRIPT_ALIASES.put("Runic", "Runr");
        SCRIPT_ALIASES.put("Runr", "Runr");
        SCRIPT_ALIASES.put("Samaritan", "Samr");
        SCRIPT_ALIASES.put("Samr", "Samr");
        SCRIPT_ALIASES.put("Sarb", "Sarb");
        SCRIPT_ALIASES.put("Saur", "Saur");
        SCRIPT_ALIASES.put("Saurashtra", "Saur");
        SCRIPT_ALIASES.put("Sgnw", "Sgnw");
        SCRIPT_ALIASES.put("Sharada", "Shrd");
        SCRIPT_ALIASES.put("Shavian", "Shaw");
        SCRIPT_ALIASES.put("Shaw", "Shaw");
        SCRIPT_ALIASES.put("Shrd", "Shrd");
        SCRIPT_ALIASES.put("Sidd", "Sidd");
        SCRIPT_ALIASES.put("Siddham", "Sidd");
        SCRIPT_ALIASES.put("SignWriting", "Sgnw");
        SCRIPT_ALIASES.put("Sind", "Sind");
        SCRIPT_ALIASES.put("Sinh", "Sinh");
        SCRIPT_ALIASES.put("Sinhala", "Sinh");
        SCRIPT_ALIASES.put("Sogd", "Sogd");
        SCRIPT_ALIASES.put("Sogdian", "Sogd");
        SCRIPT_ALIASES.put("Sogo", "Sogo");
        SCRIPT_ALIASES.put("Sora", "Sora");
        SCRIPT_ALIASES.put("Sora_Sompeng", "Sora");
        SCRIPT_ALIASES.put("Soyo", "Soyo");
        SCRIPT_ALIASES.put("Soyombo", "Soyo");
        SCRIPT_ALIASES.put("Sund", "Sund");
        SCRIPT_ALIASES.put("Sundanese", "Sund");
        SCRIPT_ALIASES.put("Sylo", "Sylo");
        SCRIPT_ALIASES.put("Syloti_Nagri", "Sylo");
        SCRIPT_ALIASES.put("Syrc", "Syrc");
        SCRIPT_ALIASES.put("Syriac", "Syrc");
        SCRIPT_ALIASES.put("Tagalog", "Tglg");
        SCRIPT_ALIASES.put("Tagb", "Tagb");
        SCRIPT_ALIASES.put("Tagbanwa", "Tagb");
        SCRIPT_ALIASES.put("Tai_Le", "Tale");
        SCRIPT_ALIASES.put("Tai_Tham", "Lana");
        SCRIPT_ALIASES.put("Tai_Viet", "Tavt");
        SCRIPT_ALIASES.put("Takr", "Takr");
        SCRIPT_ALIASES.put("Takri", "Takr");
        SCRIPT_ALIASES.put("Tale", "Tale");
        SCRIPT_ALIASES.put("Talu", "Talu");
        SCRIPT_ALIASES.put("Tamil", "Taml");
        SCRIPT_ALIASES.put("Taml", "Taml");
        SCRIPT_ALIASES.put("Tang", "Tang");
        SCRIPT_ALIASES.put("Tangut", "Tang");
        SCRIPT_ALIASES.put("Tavt", "Tavt");
        SCRIPT_ALIASES.put("Telu", "Telu");
        SCRIPT_ALIASES.put("Telugu", "Telu");
        SCRIPT_ALIASES.put("Tfng", "Tfng");
        SCRIPT_ALIASES.put("Tglg", "Tglg");
        SCRIPT_ALIASES.put("Thaa", "Thaa");
        SCRIPT_ALIASES.put("Thaana", "Thaa");
        SCRIPT_ALIASES.put("Thai", "Thai");
        SCRIPT_ALIASES.put("Tibetan", "Tibt");
        SCRIPT_ALIASES.put("Tibt", "Tibt");
        SCRIPT_ALIASES.put("Tifinagh", "Tfng");
        SCRIPT_ALIASES.put("Tirh", "Tirh");
        SCRIPT_ALIASES.put("Tirhuta", "Tirh");
        SCRIPT_ALIASES.put("Ugar", "Ugar");
        SCRIPT_ALIASES.put("Ugaritic", "Ugar");
        SCRIPT_ALIASES.put("Unknown", "Zzzz");
        SCRIPT_ALIASES.put("Vai", "Vaii");
        SCRIPT_ALIASES.put("Vaii", "Vaii");
        SCRIPT_ALIASES.put("Wancho", "Wcho");
        SCRIPT_ALIASES.put("Wara", "Wara");
        SCRIPT_ALIASES.put("Warang_Citi", "Wara");
        SCRIPT_ALIASES.put("Wcho", "Wcho");
        SCRIPT_ALIASES.put("Xpeo", "Xpeo");
        SCRIPT_ALIASES.put("Xsux", "Xsux");
        SCRIPT_ALIASES.put("Yi", "Yiii");
        SCRIPT_ALIASES.put("Yiii", "Yiii");
        SCRIPT_ALIASES.put("Zanabazar_Square", "Zanb");
        SCRIPT_ALIASES.put("Zanb", "Zanb");
        SCRIPT_ALIASES.put("Zinh", "Zinh");
        SCRIPT_ALIASES.put("Zyyy", "Zyyy");
        SCRIPT_ALIASES.put("Zzzz", "Zzzz");

        populateAHEX();
        populateASCII();
        populateALPHA();
        populateANY();
        populateASSIGNED();
        populateBIDI_C();
        populateBIDI_M();
        populateCI();
        populateCWCF();
        populateCWCM();
        populateCWKCF();
        populateCWL();
        populateCWT();
        populateCWU();
        populateCASED();
        populateDI();
        populateDASH();
        populateDEP();
        populateDIA();
        populateEMOJI();
        populateEMOJI_COMPONENT();
        populateEMOJI_MODIFIER();
        populateEMOJI_MODIFIER_BASE();
        populateEMOJI_PRESENTATION();
        populateEXT();
        populateEXTENDED_PICTOGRAPHIC();
        populateGR_BASE();
        populateGR_EXT();
        populateHEX();
        populateIDC();
        populateIDS();
        populateIDSB();
        populateIDST();
        populateIDEO();
        populateJOIN_C();
        populateLOE();
        populateLOWER();
        populateMATH();
        populateNCHAR();
        populatePAT_SYN();
        populatePAT_WS();
        populateQMARK();
        populateRI();
        populateRADICAL();
        populateSD();
        populateSTERM();
        populateTERM();
        populateUIDEO();
        populateUPPER();
        populateVS();
        populateWSPACE();
        populateXIDC();
        populateXIDS();
        populateGC_CC();
        populateGC_CF();
        populateGC_CN();
        populateGC_CO();
        populateGC_CS();
        populateGC_LL();
        populateGC_LM();
        populateGC_LO();
        populateGC_LT();
        populateGC_LU();
        populateGC_MC();
        populateGC_ME();
        populateGC_MN();
        populateGC_ND();
        populateGC_NL();
        populateGC_NO();
        populateGC_PC();
        populateGC_PD();
        populateGC_PE();
        populateGC_PF();
        populateGC_PI();
        populateGC_PO();
        populateGC_PS();
        populateGC_SC();
        populateGC_SK();
        populateGC_SM();
        populateGC_SO();
        populateGC_ZL();
        populateGC_ZP();
        populateGC_ZS();
        populateSC_ADLM();
        populateSC_AGHB();
        populateSC_AHOM();
        populateSC_ARAB();
        populateSC_ARMI();
        populateSC_ARMN();
        populateSC_AVST();
        populateSC_BALI();
        populateSC_BAMU();
        populateSC_BASS();
        populateSC_BATK();
        populateSC_BENG();
        populateSC_BHKS();
        populateSC_BOPO();
        populateSC_BRAH();
        populateSC_BRAI();
        populateSC_BUGI();
        populateSC_BUHD();
        populateSC_CAKM();
        populateSC_CANS();
        populateSC_CARI();
        populateSC_CHAM();
        populateSC_CHER();
        populateSC_COPT();
        populateSC_CPRT();
        populateSC_CYRL();
        populateSC_DEVA();
        populateSC_DOGR();
        populateSC_DSRT();
        populateSC_DUPL();
        populateSC_EGYP();
        populateSC_ELBA();
        populateSC_ELYM();
        populateSC_ETHI();
        populateSC_GEOR();
        populateSC_GLAG();
        populateSC_GONG();
        populateSC_GONM();
        populateSC_GOTH();
        populateSC_GRAN();
        populateSC_GREK();
        populateSC_GUJR();
        populateSC_GURU();
        populateSC_HANG();
        populateSC_HANI();
        populateSC_HANO();
        populateSC_HATR();
        populateSC_HEBR();
        populateSC_HIRA();
        populateSC_HLUW();
        populateSC_HMNG();
        populateSC_HMNP();
        populateSC_HUNG();
        populateSC_ITAL();
        populateSC_JAVA();
        populateSC_KALI();
        populateSC_KANA();
        populateSC_KHAR();
        populateSC_KHMR();
        populateSC_KHOJ();
        populateSC_KNDA();
        populateSC_KTHI();
        populateSC_LANA();
        populateSC_LAOO();
        populateSC_LATN();
        populateSC_LEPC();
        populateSC_LIMB();
        populateSC_LINA();
        populateSC_LINB();
        populateSC_LISU();
        populateSC_LYCI();
        populateSC_LYDI();
        populateSC_MAHJ();
        populateSC_MAKA();
        populateSC_MAND();
        populateSC_MANI();
        populateSC_MARC();
        populateSC_MEDF();
        populateSC_MEND();
        populateSC_MERC();
        populateSC_MERO();
        populateSC_MLYM();
        populateSC_MODI();
        populateSC_MONG();
        populateSC_MROO();
        populateSC_MTEI();
        populateSC_MULT();
        populateSC_MYMR();
        populateSC_NAND();
        populateSC_NARB();
        populateSC_NBAT();
        populateSC_NEWA();
        populateSC_NKOO();
        populateSC_NSHU();
        populateSC_OGAM();
        populateSC_OLCK();
        populateSC_ORKH();
        populateSC_ORYA();
        populateSC_OSGE();
        populateSC_OSMA();
        populateSC_PALM();
        populateSC_PAUC();
        populateSC_PERM();
        populateSC_PHAG();
        populateSC_PHLI();
        populateSC_PHLP();
        populateSC_PHNX();
        populateSC_PLRD();
        populateSC_PRTI();
        populateSC_RJNG();
        populateSC_ROHG();
        populateSC_RUNR();
        populateSC_SAMR();
        populateSC_SARB();
        populateSC_SAUR();
        populateSC_SGNW();
        populateSC_SHAW();
        populateSC_SHRD();
        populateSC_SIDD();
        populateSC_SIND();
        populateSC_SINH();
        populateSC_SOGD();
        populateSC_SOGO();
        populateSC_SORA();
        populateSC_SOYO();
        populateSC_SUND();
        populateSC_SYLO();
        populateSC_SYRC();
        populateSC_TAGB();
        populateSC_TAKR();
        populateSC_TALE();
        populateSC_TALU();
        populateSC_TAML();
        populateSC_TANG();
        populateSC_TAVT();
        populateSC_TELU();
        populateSC_TFNG();
        populateSC_TGLG();
        populateSC_THAA();
        populateSC_THAI();
        populateSC_TIBT();
        populateSC_TIRH();
        populateSC_UGAR();
        populateSC_VAII();
        populateSC_WARA();
        populateSC_WCHO();
        populateSC_XPEO();
        populateSC_XSUX();
        populateSC_YIII();
        populateSC_ZANB();
        populateSC_ZINH();
        populateSC_ZYYY();
        populateSC_ZZZZ();
        populateSCX_ADLM();
        populateSCX_AGHB();
        populateSCX_AHOM();
        populateSCX_ARAB();
        populateSCX_ARMI();
        populateSCX_ARMN();
        populateSCX_AVST();
        populateSCX_BALI();
        populateSCX_BAMU();
        populateSCX_BASS();
        populateSCX_BATK();
        populateSCX_BENG();
        populateSCX_BHKS();
        populateSCX_BOPO();
        populateSCX_BRAH();
        populateSCX_BRAI();
        populateSCX_BUGI();
        populateSCX_BUHD();
        populateSCX_CAKM();
        populateSCX_CANS();
        populateSCX_CARI();
        populateSCX_CHAM();
        populateSCX_CHER();
        populateSCX_COPT();
        populateSCX_CPRT();
        populateSCX_CYRL();
        populateSCX_DEVA();
        populateSCX_DOGR();
        populateSCX_DSRT();
        populateSCX_DUPL();
        populateSCX_EGYP();
        populateSCX_ELBA();
        populateSCX_ELYM();
        populateSCX_ETHI();
        populateSCX_GEOR();
        populateSCX_GLAG();
        populateSCX_GONG();
        populateSCX_GONM();
        populateSCX_GOTH();
        populateSCX_GRAN();
        populateSCX_GREK();
        populateSCX_GUJR();
        populateSCX_GURU();
        populateSCX_HANG();
        populateSCX_HANI();
        populateSCX_HANO();
        populateSCX_HATR();
        populateSCX_HEBR();
        populateSCX_HIRA();
        populateSCX_HLUW();
        populateSCX_HMNG();
        populateSCX_HMNP();
        populateSCX_HUNG();
        populateSCX_ITAL();
        populateSCX_JAVA();
        populateSCX_KALI();
        populateSCX_KANA();
        populateSCX_KHAR();
        populateSCX_KHMR();
        populateSCX_KHOJ();
        populateSCX_KNDA();
        populateSCX_KTHI();
        populateSCX_LANA();
        populateSCX_LAOO();
        populateSCX_LATN();
        populateSCX_LEPC();
        populateSCX_LIMB();
        populateSCX_LINA();
        populateSCX_LINB();
        populateSCX_LISU();
        populateSCX_LYCI();
        populateSCX_LYDI();
        populateSCX_MAHJ();
        populateSCX_MAKA();
        populateSCX_MAND();
        populateSCX_MANI();
        populateSCX_MARC();
        populateSCX_MEDF();
        populateSCX_MEND();
        populateSCX_MERC();
        populateSCX_MERO();
        populateSCX_MLYM();
        populateSCX_MODI();
        populateSCX_MONG();
        populateSCX_MROO();
        populateSCX_MTEI();
        populateSCX_MULT();
        populateSCX_MYMR();
        populateSCX_NAND();
        populateSCX_NARB();
        populateSCX_NBAT();
        populateSCX_NEWA();
        populateSCX_NKOO();
        populateSCX_NSHU();
        populateSCX_OGAM();
        populateSCX_OLCK();
        populateSCX_ORKH();
        populateSCX_ORYA();
        populateSCX_OSGE();
        populateSCX_OSMA();
        populateSCX_PALM();
        populateSCX_PAUC();
        populateSCX_PERM();
        populateSCX_PHAG();
        populateSCX_PHLI();
        populateSCX_PHLP();
        populateSCX_PHNX();
        populateSCX_PLRD();
        populateSCX_PRTI();
        populateSCX_RJNG();
        populateSCX_ROHG();
        populateSCX_RUNR();
        populateSCX_SAMR();
        populateSCX_SARB();
        populateSCX_SAUR();
        populateSCX_SGNW();
        populateSCX_SHAW();
        populateSCX_SHRD();
        populateSCX_SIDD();
        populateSCX_SIND();
        populateSCX_SINH();
        populateSCX_SOGD();
        populateSCX_SOGO();
        populateSCX_SORA();
        populateSCX_SOYO();
        populateSCX_SUND();
        populateSCX_SYLO();
        populateSCX_SYRC();
        populateSCX_TAGB();
        populateSCX_TAKR();
        populateSCX_TALE();
        populateSCX_TALU();
        populateSCX_TAML();
        populateSCX_TANG();
        populateSCX_TAVT();
        populateSCX_TELU();
        populateSCX_TFNG();
        populateSCX_TGLG();
        populateSCX_THAA();
        populateSCX_THAI();
        populateSCX_TIBT();
        populateSCX_TIRH();
        populateSCX_UGAR();
        populateSCX_VAII();
        populateSCX_WARA();
        populateSCX_WCHO();
        populateSCX_XPEO();
        populateSCX_XSUX();
        populateSCX_YIII();
        populateSCX_ZANB();
        populateSCX_ZINH();
        populateSCX_ZYYY();
        populateSCX_ZZZZ();
    }

    private static void populateAHEX() {
        SET_ENCODINGS.put("AHex", CodePointSet.createNoDedup(0x0030, 0x0039, 0x0041, 0x0046, 0x0061, 0x0066));
    }

    private static void populateASCII() {
        SET_ENCODINGS.put("ASCII", CodePointSet.createNoDedup(0x0000, 0x007f));
    }

    private static void populateALPHA() {
        SET_ENCODINGS.put("Alpha", CodePointSet.createNoDedup(0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, 0x00b5, 0x00b5, 0x00ba, 0x00ba, 0x00c0, 0x00d6, 0x00d8, 0x00f6, 0x00f8, 0x02c1, 0x02c6,
                        0x02d1, 0x02e0, 0x02e4, 0x02ec, 0x02ec, 0x02ee, 0x02ee, 0x0345, 0x0345, 0x0370, 0x0374, 0x0376, 0x0377, 0x037a, 0x037d, 0x037f, 0x037f, 0x0386, 0x0386, 0x0388, 0x038a, 0x038c,
                        0x038c, 0x038e, 0x03a1, 0x03a3, 0x03f5, 0x03f7, 0x0481, 0x048a, 0x052f, 0x0531, 0x0556, 0x0559, 0x0559, 0x0560, 0x0588, 0x05b0, 0x05bd, 0x05bf, 0x05bf, 0x05c1, 0x05c2, 0x05c4,
                        0x05c5, 0x05c7, 0x05c7, 0x05d0, 0x05ea, 0x05ef, 0x05f2, 0x0610, 0x061a, 0x0620, 0x0657, 0x0659, 0x065f, 0x066e, 0x06d3, 0x06d5, 0x06dc, 0x06e1, 0x06e8, 0x06ed, 0x06ef, 0x06fa,
                        0x06fc, 0x06ff, 0x06ff, 0x0710, 0x073f, 0x074d, 0x07b1, 0x07ca, 0x07ea, 0x07f4, 0x07f5, 0x07fa, 0x07fa, 0x0800, 0x0817, 0x081a, 0x082c, 0x0840, 0x0858, 0x0860, 0x086a, 0x08a0,
                        0x08b4, 0x08b6, 0x08bd, 0x08d4, 0x08df, 0x08e3, 0x08e9, 0x08f0, 0x093b, 0x093d, 0x094c, 0x094e, 0x0950, 0x0955, 0x0963, 0x0971, 0x0983, 0x0985, 0x098c, 0x098f, 0x0990, 0x0993,
                        0x09a8, 0x09aa, 0x09b0, 0x09b2, 0x09b2, 0x09b6, 0x09b9, 0x09bd, 0x09c4, 0x09c7, 0x09c8, 0x09cb, 0x09cc, 0x09ce, 0x09ce, 0x09d7, 0x09d7, 0x09dc, 0x09dd, 0x09df, 0x09e3, 0x09f0,
                        0x09f1, 0x09fc, 0x09fc, 0x0a01, 0x0a03, 0x0a05, 0x0a0a, 0x0a0f, 0x0a10, 0x0a13, 0x0a28, 0x0a2a, 0x0a30, 0x0a32, 0x0a33, 0x0a35, 0x0a36, 0x0a38, 0x0a39, 0x0a3e, 0x0a42, 0x0a47,
                        0x0a48, 0x0a4b, 0x0a4c, 0x0a51, 0x0a51, 0x0a59, 0x0a5c, 0x0a5e, 0x0a5e, 0x0a70, 0x0a75, 0x0a81, 0x0a83, 0x0a85, 0x0a8d, 0x0a8f, 0x0a91, 0x0a93, 0x0aa8, 0x0aaa, 0x0ab0, 0x0ab2,
                        0x0ab3, 0x0ab5, 0x0ab9, 0x0abd, 0x0ac5, 0x0ac7, 0x0ac9, 0x0acb, 0x0acc, 0x0ad0, 0x0ad0, 0x0ae0, 0x0ae3, 0x0af9, 0x0afc, 0x0b01, 0x0b03, 0x0b05, 0x0b0c, 0x0b0f, 0x0b10, 0x0b13,
                        0x0b28, 0x0b2a, 0x0b30, 0x0b32, 0x0b33, 0x0b35, 0x0b39, 0x0b3d, 0x0b44, 0x0b47, 0x0b48, 0x0b4b, 0x0b4c, 0x0b56, 0x0b57, 0x0b5c, 0x0b5d, 0x0b5f, 0x0b63, 0x0b71, 0x0b71, 0x0b82,
                        0x0b83, 0x0b85, 0x0b8a, 0x0b8e, 0x0b90, 0x0b92, 0x0b95, 0x0b99, 0x0b9a, 0x0b9c, 0x0b9c, 0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0ba8, 0x0baa, 0x0bae, 0x0bb9, 0x0bbe, 0x0bc2, 0x0bc6,
                        0x0bc8, 0x0bca, 0x0bcc, 0x0bd0, 0x0bd0, 0x0bd7, 0x0bd7, 0x0c00, 0x0c03, 0x0c05, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, 0x0c3d, 0x0c44, 0x0c46, 0x0c48, 0x0c4a,
                        0x0c4c, 0x0c55, 0x0c56, 0x0c58, 0x0c5a, 0x0c60, 0x0c63, 0x0c80, 0x0c83, 0x0c85, 0x0c8c, 0x0c8e, 0x0c90, 0x0c92, 0x0ca8, 0x0caa, 0x0cb3, 0x0cb5, 0x0cb9, 0x0cbd, 0x0cc4, 0x0cc6,
                        0x0cc8, 0x0cca, 0x0ccc, 0x0cd5, 0x0cd6, 0x0cde, 0x0cde, 0x0ce0, 0x0ce3, 0x0cf1, 0x0cf2, 0x0d00, 0x0d03, 0x0d05, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d3a, 0x0d3d, 0x0d44, 0x0d46,
                        0x0d48, 0x0d4a, 0x0d4c, 0x0d4e, 0x0d4e, 0x0d54, 0x0d57, 0x0d5f, 0x0d63, 0x0d7a, 0x0d7f, 0x0d82, 0x0d83, 0x0d85, 0x0d96, 0x0d9a, 0x0db1, 0x0db3, 0x0dbb, 0x0dbd, 0x0dbd, 0x0dc0,
                        0x0dc6, 0x0dcf, 0x0dd4, 0x0dd6, 0x0dd6, 0x0dd8, 0x0ddf, 0x0df2, 0x0df3, 0x0e01, 0x0e3a, 0x0e40, 0x0e46, 0x0e4d, 0x0e4d, 0x0e81, 0x0e82, 0x0e84, 0x0e84, 0x0e86, 0x0e8a, 0x0e8c,
                        0x0ea3, 0x0ea5, 0x0ea5, 0x0ea7, 0x0eb9, 0x0ebb, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, 0x0ecd, 0x0ecd, 0x0edc, 0x0edf, 0x0f00, 0x0f00, 0x0f40, 0x0f47, 0x0f49, 0x0f6c, 0x0f71,
                        0x0f81, 0x0f88, 0x0f97, 0x0f99, 0x0fbc, 0x1000, 0x1036, 0x1038, 0x1038, 0x103b, 0x103f, 0x1050, 0x108f, 0x109a, 0x109d, 0x10a0, 0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x10d0,
                        0x10fa, 0x10fc, 0x1248, 0x124a, 0x124d, 0x1250, 0x1256, 0x1258, 0x1258, 0x125a, 0x125d, 0x1260, 0x1288, 0x128a, 0x128d, 0x1290, 0x12b0, 0x12b2, 0x12b5, 0x12b8, 0x12be, 0x12c0,
                        0x12c0, 0x12c2, 0x12c5, 0x12c8, 0x12d6, 0x12d8, 0x1310, 0x1312, 0x1315, 0x1318, 0x135a, 0x1380, 0x138f, 0x13a0, 0x13f5, 0x13f8, 0x13fd, 0x1401, 0x166c, 0x166f, 0x167f, 0x1681,
                        0x169a, 0x16a0, 0x16ea, 0x16ee, 0x16f8, 0x1700, 0x170c, 0x170e, 0x1713, 0x1720, 0x1733, 0x1740, 0x1753, 0x1760, 0x176c, 0x176e, 0x1770, 0x1772, 0x1773, 0x1780, 0x17b3, 0x17b6,
                        0x17c8, 0x17d7, 0x17d7, 0x17dc, 0x17dc, 0x1820, 0x1878, 0x1880, 0x18aa, 0x18b0, 0x18f5, 0x1900, 0x191e, 0x1920, 0x192b, 0x1930, 0x1938, 0x1950, 0x196d, 0x1970, 0x1974, 0x1980,
                        0x19ab, 0x19b0, 0x19c9, 0x1a00, 0x1a1b, 0x1a20, 0x1a5e, 0x1a61, 0x1a74, 0x1aa7, 0x1aa7, 0x1b00, 0x1b33, 0x1b35, 0x1b43, 0x1b45, 0x1b4b, 0x1b80, 0x1ba9, 0x1bac, 0x1baf, 0x1bba,
                        0x1be5, 0x1be7, 0x1bf1, 0x1c00, 0x1c36, 0x1c4d, 0x1c4f, 0x1c5a, 0x1c7d, 0x1c80, 0x1c88, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1ce9, 0x1cec, 0x1cee, 0x1cf3, 0x1cf5, 0x1cf6, 0x1cfa,
                        0x1cfa, 0x1d00, 0x1dbf, 0x1de7, 0x1df4, 0x1e00, 0x1f15, 0x1f18, 0x1f1d, 0x1f20, 0x1f45, 0x1f48, 0x1f4d, 0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f,
                        0x1f7d, 0x1f80, 0x1fb4, 0x1fb6, 0x1fbc, 0x1fbe, 0x1fbe, 0x1fc2, 0x1fc4, 0x1fc6, 0x1fcc, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fdb, 0x1fe0, 0x1fec, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffc, 0x2071,
                        0x2071, 0x207f, 0x207f, 0x2090, 0x209c, 0x2102, 0x2102, 0x2107, 0x2107, 0x210a, 0x2113, 0x2115, 0x2115, 0x2119, 0x211d, 0x2124, 0x2124, 0x2126, 0x2126, 0x2128, 0x2128, 0x212a,
                        0x212d, 0x212f, 0x2139, 0x213c, 0x213f, 0x2145, 0x2149, 0x214e, 0x214e, 0x2160, 0x2188, 0x24b6, 0x24e9, 0x2c00, 0x2c2e, 0x2c30, 0x2c5e, 0x2c60, 0x2ce4, 0x2ceb, 0x2cee, 0x2cf2,
                        0x2cf3, 0x2d00, 0x2d25, 0x2d27, 0x2d27, 0x2d2d, 0x2d2d, 0x2d30, 0x2d67, 0x2d6f, 0x2d6f, 0x2d80, 0x2d96, 0x2da0, 0x2da6, 0x2da8, 0x2dae, 0x2db0, 0x2db6, 0x2db8, 0x2dbe, 0x2dc0,
                        0x2dc6, 0x2dc8, 0x2dce, 0x2dd0, 0x2dd6, 0x2dd8, 0x2dde, 0x2de0, 0x2dff, 0x2e2f, 0x2e2f, 0x3005, 0x3007, 0x3021, 0x3029, 0x3031, 0x3035, 0x3038, 0x303c, 0x3041, 0x3096, 0x309d,
                        0x309f, 0x30a1, 0x30fa, 0x30fc, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, 0x31a0, 0x31ba, 0x31f0, 0x31ff, 0x3400, 0x4db5, 0x4e00, 0x9fef, 0xa000, 0xa48c, 0xa4d0, 0xa4fd, 0xa500,
                        0xa60c, 0xa610, 0xa61f, 0xa62a, 0xa62b, 0xa640, 0xa66e, 0xa674, 0xa67b, 0xa67f, 0xa6ef, 0xa717, 0xa71f, 0xa722, 0xa788, 0xa78b, 0xa7bf, 0xa7c2, 0xa7c6, 0xa7f7, 0xa805, 0xa807,
                        0xa827, 0xa840, 0xa873, 0xa880, 0xa8c3, 0xa8c5, 0xa8c5, 0xa8f2, 0xa8f7, 0xa8fb, 0xa8fb, 0xa8fd, 0xa8ff, 0xa90a, 0xa92a, 0xa930, 0xa952, 0xa960, 0xa97c, 0xa980, 0xa9b2, 0xa9b4,
                        0xa9bf, 0xa9cf, 0xa9cf, 0xa9e0, 0xa9ef, 0xa9fa, 0xa9fe, 0xaa00, 0xaa36, 0xaa40, 0xaa4d, 0xaa60, 0xaa76, 0xaa7a, 0xaabe, 0xaac0, 0xaac0, 0xaac2, 0xaac2, 0xaadb, 0xaadd, 0xaae0,
                        0xaaef, 0xaaf2, 0xaaf5, 0xab01, 0xab06, 0xab09, 0xab0e, 0xab11, 0xab16, 0xab20, 0xab26, 0xab28, 0xab2e, 0xab30, 0xab5a, 0xab5c, 0xab67, 0xab70, 0xabea, 0xac00, 0xd7a3, 0xd7b0,
                        0xd7c6, 0xd7cb, 0xd7fb, 0xf900, 0xfa6d, 0xfa70, 0xfad9, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xfb1d, 0xfb28, 0xfb2a, 0xfb36, 0xfb38, 0xfb3c, 0xfb3e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43,
                        0xfb44, 0xfb46, 0xfbb1, 0xfbd3, 0xfd3d, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0, 0xfdfb, 0xfe70, 0xfe74, 0xfe76, 0xfefc, 0xff21, 0xff3a, 0xff41, 0xff5a, 0xff66, 0xffbe, 0xffc2,
                        0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, 0xffda, 0xffdc, 0x10000, 0x1000b, 0x1000d, 0x10026, 0x10028, 0x1003a, 0x1003c, 0x1003d, 0x1003f, 0x1004d, 0x10050, 0x1005d, 0x10080,
                        0x100fa, 0x10140, 0x10174, 0x10280, 0x1029c, 0x102a0, 0x102d0, 0x10300, 0x1031f, 0x1032d, 0x1034a, 0x10350, 0x1037a, 0x10380, 0x1039d, 0x103a0, 0x103c3, 0x103c8, 0x103cf,
                        0x103d1, 0x103d5, 0x10400, 0x1049d, 0x104b0, 0x104d3, 0x104d8, 0x104fb, 0x10500, 0x10527, 0x10530, 0x10563, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, 0x10800,
                        0x10805, 0x10808, 0x10808, 0x1080a, 0x10835, 0x10837, 0x10838, 0x1083c, 0x1083c, 0x1083f, 0x10855, 0x10860, 0x10876, 0x10880, 0x1089e, 0x108e0, 0x108f2, 0x108f4, 0x108f5,
                        0x10900, 0x10915, 0x10920, 0x10939, 0x10980, 0x109b7, 0x109be, 0x109bf, 0x10a00, 0x10a03, 0x10a05, 0x10a06, 0x10a0c, 0x10a13, 0x10a15, 0x10a17, 0x10a19, 0x10a35, 0x10a60,
                        0x10a7c, 0x10a80, 0x10a9c, 0x10ac0, 0x10ac7, 0x10ac9, 0x10ae4, 0x10b00, 0x10b35, 0x10b40, 0x10b55, 0x10b60, 0x10b72, 0x10b80, 0x10b91, 0x10c00, 0x10c48, 0x10c80, 0x10cb2,
                        0x10cc0, 0x10cf2, 0x10d00, 0x10d27, 0x10f00, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f45, 0x10fe0, 0x10ff6, 0x11000, 0x11045, 0x11082, 0x110b8, 0x110d0, 0x110e8, 0x11100,
                        0x11132, 0x11144, 0x11146, 0x11150, 0x11172, 0x11176, 0x11176, 0x11180, 0x111bf, 0x111c1, 0x111c4, 0x111da, 0x111da, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x11234,
                        0x11237, 0x11237, 0x1123e, 0x1123e, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, 0x1128f, 0x1129d, 0x1129f, 0x112a8, 0x112b0, 0x112e8, 0x11300, 0x11303, 0x11305,
                        0x1130c, 0x1130f, 0x11310, 0x11313, 0x11328, 0x1132a, 0x11330, 0x11332, 0x11333, 0x11335, 0x11339, 0x1133d, 0x11344, 0x11347, 0x11348, 0x1134b, 0x1134c, 0x11350, 0x11350,
                        0x11357, 0x11357, 0x1135d, 0x11363, 0x11400, 0x11441, 0x11443, 0x11445, 0x11447, 0x1144a, 0x1145f, 0x1145f, 0x11480, 0x114c1, 0x114c4, 0x114c5, 0x114c7, 0x114c7, 0x11580,
                        0x115b5, 0x115b8, 0x115be, 0x115d8, 0x115dd, 0x11600, 0x1163e, 0x11640, 0x11640, 0x11644, 0x11644, 0x11680, 0x116b5, 0x116b8, 0x116b8, 0x11700, 0x1171a, 0x1171d, 0x1172a,
                        0x11800, 0x11838, 0x118a0, 0x118df, 0x118ff, 0x118ff, 0x119a0, 0x119a7, 0x119aa, 0x119d7, 0x119da, 0x119df, 0x119e1, 0x119e1, 0x119e3, 0x119e4, 0x11a00, 0x11a32, 0x11a35,
                        0x11a3e, 0x11a50, 0x11a97, 0x11a9d, 0x11a9d, 0x11ac0, 0x11af8, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c3e, 0x11c40, 0x11c40, 0x11c72, 0x11c8f, 0x11c92, 0x11ca7,
                        0x11ca9, 0x11cb6, 0x11d00, 0x11d06, 0x11d08, 0x11d09, 0x11d0b, 0x11d36, 0x11d3a, 0x11d3a, 0x11d3c, 0x11d3d, 0x11d3f, 0x11d41, 0x11d43, 0x11d43, 0x11d46, 0x11d47, 0x11d60,
                        0x11d65, 0x11d67, 0x11d68, 0x11d6a, 0x11d8e, 0x11d90, 0x11d91, 0x11d93, 0x11d96, 0x11d98, 0x11d98, 0x11ee0, 0x11ef6, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543,
                        0x13000, 0x1342e, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16ad0, 0x16aed, 0x16b00, 0x16b2f, 0x16b40, 0x16b43, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, 0x16e40,
                        0x16e7f, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, 0x16f8f, 0x16f9f, 0x16fe0, 0x16fe1, 0x16fe3, 0x16fe3, 0x17000, 0x187f7, 0x18800, 0x18af2, 0x1b000, 0x1b11e, 0x1b150, 0x1b152,
                        0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, 0x1bc70, 0x1bc7c, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9e, 0x1bc9e, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e,
                        0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c3, 0x1d4c5, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514,
                        0x1d516, 0x1d51c, 0x1d51e, 0x1d539, 0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d552, 0x1d6a5, 0x1d6a8, 0x1d6c0, 0x1d6c2, 0x1d6da, 0x1d6dc,
                        0x1d6fa, 0x1d6fc, 0x1d714, 0x1d716, 0x1d734, 0x1d736, 0x1d74e, 0x1d750, 0x1d76e, 0x1d770, 0x1d788, 0x1d78a, 0x1d7a8, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7cb, 0x1e000, 0x1e006,
                        0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e14e, 0x1e14e, 0x1e2c0, 0x1e2eb, 0x1e800, 0x1e8c4, 0x1e900,
                        0x1e943, 0x1e947, 0x1e947, 0x1e94b, 0x1e94b, 0x1ee00, 0x1ee03, 0x1ee05, 0x1ee1f, 0x1ee21, 0x1ee22, 0x1ee24, 0x1ee24, 0x1ee27, 0x1ee27, 0x1ee29, 0x1ee32, 0x1ee34, 0x1ee37,
                        0x1ee39, 0x1ee39, 0x1ee3b, 0x1ee3b, 0x1ee42, 0x1ee42, 0x1ee47, 0x1ee47, 0x1ee49, 0x1ee49, 0x1ee4b, 0x1ee4b, 0x1ee4d, 0x1ee4f, 0x1ee51, 0x1ee52, 0x1ee54, 0x1ee54, 0x1ee57,
                        0x1ee57, 0x1ee59, 0x1ee59, 0x1ee5b, 0x1ee5b, 0x1ee5d, 0x1ee5d, 0x1ee5f, 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64, 0x1ee64, 0x1ee67, 0x1ee6a, 0x1ee6c, 0x1ee72, 0x1ee74, 0x1ee77,
                        0x1ee79, 0x1ee7c, 0x1ee7e, 0x1ee7e, 0x1ee80, 0x1ee89, 0x1ee8b, 0x1ee9b, 0x1eea1, 0x1eea3, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x1f130, 0x1f149, 0x1f150, 0x1f169, 0x1f170,
                        0x1f189, 0x20000, 0x2a6d6, 0x2a700, 0x2b734, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, 0x2f800, 0x2fa1d));
    }

    private static void populateANY() {
        SET_ENCODINGS.put("Any", CodePointSet.createNoDedup(0x0000, 0x10ffff));
    }

    private static void populateASSIGNED() {
        SET_ENCODINGS.put("Assigned", CodePointSet.createNoDedup(0x0000, 0x0377, 0x037a, 0x037f, 0x0384, 0x038a, 0x038c, 0x038c, 0x038e, 0x03a1, 0x03a3, 0x052f, 0x0531, 0x0556, 0x0559, 0x058a, 0x058d,
                        0x058f, 0x0591, 0x05c7, 0x05d0, 0x05ea, 0x05ef, 0x05f4, 0x0600, 0x061c, 0x061e, 0x070d, 0x070f, 0x074a, 0x074d, 0x07b1, 0x07c0, 0x07fa, 0x07fd, 0x082d, 0x0830, 0x083e, 0x0840,
                        0x085b, 0x085e, 0x085e, 0x0860, 0x086a, 0x08a0, 0x08b4, 0x08b6, 0x08bd, 0x08d3, 0x0983, 0x0985, 0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, 0x09aa, 0x09b0, 0x09b2, 0x09b2, 0x09b6,
                        0x09b9, 0x09bc, 0x09c4, 0x09c7, 0x09c8, 0x09cb, 0x09ce, 0x09d7, 0x09d7, 0x09dc, 0x09dd, 0x09df, 0x09e3, 0x09e6, 0x09fe, 0x0a01, 0x0a03, 0x0a05, 0x0a0a, 0x0a0f, 0x0a10, 0x0a13,
                        0x0a28, 0x0a2a, 0x0a30, 0x0a32, 0x0a33, 0x0a35, 0x0a36, 0x0a38, 0x0a39, 0x0a3c, 0x0a3c, 0x0a3e, 0x0a42, 0x0a47, 0x0a48, 0x0a4b, 0x0a4d, 0x0a51, 0x0a51, 0x0a59, 0x0a5c, 0x0a5e,
                        0x0a5e, 0x0a66, 0x0a76, 0x0a81, 0x0a83, 0x0a85, 0x0a8d, 0x0a8f, 0x0a91, 0x0a93, 0x0aa8, 0x0aaa, 0x0ab0, 0x0ab2, 0x0ab3, 0x0ab5, 0x0ab9, 0x0abc, 0x0ac5, 0x0ac7, 0x0ac9, 0x0acb,
                        0x0acd, 0x0ad0, 0x0ad0, 0x0ae0, 0x0ae3, 0x0ae6, 0x0af1, 0x0af9, 0x0aff, 0x0b01, 0x0b03, 0x0b05, 0x0b0c, 0x0b0f, 0x0b10, 0x0b13, 0x0b28, 0x0b2a, 0x0b30, 0x0b32, 0x0b33, 0x0b35,
                        0x0b39, 0x0b3c, 0x0b44, 0x0b47, 0x0b48, 0x0b4b, 0x0b4d, 0x0b56, 0x0b57, 0x0b5c, 0x0b5d, 0x0b5f, 0x0b63, 0x0b66, 0x0b77, 0x0b82, 0x0b83, 0x0b85, 0x0b8a, 0x0b8e, 0x0b90, 0x0b92,
                        0x0b95, 0x0b99, 0x0b9a, 0x0b9c, 0x0b9c, 0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0ba8, 0x0baa, 0x0bae, 0x0bb9, 0x0bbe, 0x0bc2, 0x0bc6, 0x0bc8, 0x0bca, 0x0bcd, 0x0bd0, 0x0bd0, 0x0bd7,
                        0x0bd7, 0x0be6, 0x0bfa, 0x0c00, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, 0x0c3d, 0x0c44, 0x0c46, 0x0c48, 0x0c4a, 0x0c4d, 0x0c55, 0x0c56, 0x0c58, 0x0c5a, 0x0c60,
                        0x0c63, 0x0c66, 0x0c6f, 0x0c77, 0x0c8c, 0x0c8e, 0x0c90, 0x0c92, 0x0ca8, 0x0caa, 0x0cb3, 0x0cb5, 0x0cb9, 0x0cbc, 0x0cc4, 0x0cc6, 0x0cc8, 0x0cca, 0x0ccd, 0x0cd5, 0x0cd6, 0x0cde,
                        0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, 0x0cf1, 0x0cf2, 0x0d00, 0x0d03, 0x0d05, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, 0x0d46, 0x0d48, 0x0d4a, 0x0d4f, 0x0d54, 0x0d63, 0x0d66,
                        0x0d7f, 0x0d82, 0x0d83, 0x0d85, 0x0d96, 0x0d9a, 0x0db1, 0x0db3, 0x0dbb, 0x0dbd, 0x0dbd, 0x0dc0, 0x0dc6, 0x0dca, 0x0dca, 0x0dcf, 0x0dd4, 0x0dd6, 0x0dd6, 0x0dd8, 0x0ddf, 0x0de6,
                        0x0def, 0x0df2, 0x0df4, 0x0e01, 0x0e3a, 0x0e3f, 0x0e5b, 0x0e81, 0x0e82, 0x0e84, 0x0e84, 0x0e86, 0x0e8a, 0x0e8c, 0x0ea3, 0x0ea5, 0x0ea5, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6,
                        0x0ec6, 0x0ec8, 0x0ecd, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f47, 0x0f49, 0x0f6c, 0x0f71, 0x0f97, 0x0f99, 0x0fbc, 0x0fbe, 0x0fcc, 0x0fce, 0x0fda, 0x1000, 0x10c5, 0x10c7,
                        0x10c7, 0x10cd, 0x10cd, 0x10d0, 0x1248, 0x124a, 0x124d, 0x1250, 0x1256, 0x1258, 0x1258, 0x125a, 0x125d, 0x1260, 0x1288, 0x128a, 0x128d, 0x1290, 0x12b0, 0x12b2, 0x12b5, 0x12b8,
                        0x12be, 0x12c0, 0x12c0, 0x12c2, 0x12c5, 0x12c8, 0x12d6, 0x12d8, 0x1310, 0x1312, 0x1315, 0x1318, 0x135a, 0x135d, 0x137c, 0x1380, 0x1399, 0x13a0, 0x13f5, 0x13f8, 0x13fd, 0x1400,
                        0x169c, 0x16a0, 0x16f8, 0x1700, 0x170c, 0x170e, 0x1714, 0x1720, 0x1736, 0x1740, 0x1753, 0x1760, 0x176c, 0x176e, 0x1770, 0x1772, 0x1773, 0x1780, 0x17dd, 0x17e0, 0x17e9, 0x17f0,
                        0x17f9, 0x1800, 0x180e, 0x1810, 0x1819, 0x1820, 0x1878, 0x1880, 0x18aa, 0x18b0, 0x18f5, 0x1900, 0x191e, 0x1920, 0x192b, 0x1930, 0x193b, 0x1940, 0x1940, 0x1944, 0x196d, 0x1970,
                        0x1974, 0x1980, 0x19ab, 0x19b0, 0x19c9, 0x19d0, 0x19da, 0x19de, 0x1a1b, 0x1a1e, 0x1a5e, 0x1a60, 0x1a7c, 0x1a7f, 0x1a89, 0x1a90, 0x1a99, 0x1aa0, 0x1aad, 0x1ab0, 0x1abe, 0x1b00,
                        0x1b4b, 0x1b50, 0x1b7c, 0x1b80, 0x1bf3, 0x1bfc, 0x1c37, 0x1c3b, 0x1c49, 0x1c4d, 0x1c88, 0x1c90, 0x1cba, 0x1cbd, 0x1cc7, 0x1cd0, 0x1cfa, 0x1d00, 0x1df9, 0x1dfb, 0x1f15, 0x1f18,
                        0x1f1d, 0x1f20, 0x1f45, 0x1f48, 0x1f4d, 0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f7d, 0x1f80, 0x1fb4, 0x1fb6, 0x1fc4, 0x1fc6, 0x1fd3, 0x1fd6,
                        0x1fdb, 0x1fdd, 0x1fef, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffe, 0x2000, 0x2064, 0x2066, 0x2071, 0x2074, 0x208e, 0x2090, 0x209c, 0x20a0, 0x20bf, 0x20d0, 0x20f0, 0x2100, 0x218b, 0x2190,
                        0x2426, 0x2440, 0x244a, 0x2460, 0x2b73, 0x2b76, 0x2b95, 0x2b98, 0x2c2e, 0x2c30, 0x2c5e, 0x2c60, 0x2cf3, 0x2cf9, 0x2d25, 0x2d27, 0x2d27, 0x2d2d, 0x2d2d, 0x2d30, 0x2d67, 0x2d6f,
                        0x2d70, 0x2d7f, 0x2d96, 0x2da0, 0x2da6, 0x2da8, 0x2dae, 0x2db0, 0x2db6, 0x2db8, 0x2dbe, 0x2dc0, 0x2dc6, 0x2dc8, 0x2dce, 0x2dd0, 0x2dd6, 0x2dd8, 0x2dde, 0x2de0, 0x2e4f, 0x2e80,
                        0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, 0x2ff0, 0x2ffb, 0x3000, 0x303f, 0x3041, 0x3096, 0x3099, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, 0x3190, 0x31ba, 0x31c0, 0x31e3, 0x31f0,
                        0x321e, 0x3220, 0x4db5, 0x4dc0, 0x9fef, 0xa000, 0xa48c, 0xa490, 0xa4c6, 0xa4d0, 0xa62b, 0xa640, 0xa6f7, 0xa700, 0xa7bf, 0xa7c2, 0xa7c6, 0xa7f7, 0xa82b, 0xa830, 0xa839, 0xa840,
                        0xa877, 0xa880, 0xa8c5, 0xa8ce, 0xa8d9, 0xa8e0, 0xa953, 0xa95f, 0xa97c, 0xa980, 0xa9cd, 0xa9cf, 0xa9d9, 0xa9de, 0xa9fe, 0xaa00, 0xaa36, 0xaa40, 0xaa4d, 0xaa50, 0xaa59, 0xaa5c,
                        0xaac2, 0xaadb, 0xaaf6, 0xab01, 0xab06, 0xab09, 0xab0e, 0xab11, 0xab16, 0xab20, 0xab26, 0xab28, 0xab2e, 0xab30, 0xab67, 0xab70, 0xabed, 0xabf0, 0xabf9, 0xac00, 0xd7a3, 0xd7b0,
                        0xd7c6, 0xd7cb, 0xd7fb, 0xd800, 0xfa6d, 0xfa70, 0xfad9, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xfb1d, 0xfb36, 0xfb38, 0xfb3c, 0xfb3e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfb46,
                        0xfbc1, 0xfbd3, 0xfd3f, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0, 0xfdfd, 0xfe00, 0xfe19, 0xfe20, 0xfe52, 0xfe54, 0xfe66, 0xfe68, 0xfe6b, 0xfe70, 0xfe74, 0xfe76, 0xfefc, 0xfeff,
                        0xfeff, 0xff01, 0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, 0xffda, 0xffdc, 0xffe0, 0xffe6, 0xffe8, 0xffee, 0xfff9, 0xfffd, 0x10000, 0x1000b, 0x1000d, 0x10026,
                        0x10028, 0x1003a, 0x1003c, 0x1003d, 0x1003f, 0x1004d, 0x10050, 0x1005d, 0x10080, 0x100fa, 0x10100, 0x10102, 0x10107, 0x10133, 0x10137, 0x1018e, 0x10190, 0x1019b, 0x101a0,
                        0x101a0, 0x101d0, 0x101fd, 0x10280, 0x1029c, 0x102a0, 0x102d0, 0x102e0, 0x102fb, 0x10300, 0x10323, 0x1032d, 0x1034a, 0x10350, 0x1037a, 0x10380, 0x1039d, 0x1039f, 0x103c3,
                        0x103c8, 0x103d5, 0x10400, 0x1049d, 0x104a0, 0x104a9, 0x104b0, 0x104d3, 0x104d8, 0x104fb, 0x10500, 0x10527, 0x10530, 0x10563, 0x1056f, 0x1056f, 0x10600, 0x10736, 0x10740,
                        0x10755, 0x10760, 0x10767, 0x10800, 0x10805, 0x10808, 0x10808, 0x1080a, 0x10835, 0x10837, 0x10838, 0x1083c, 0x1083c, 0x1083f, 0x10855, 0x10857, 0x1089e, 0x108a7, 0x108af,
                        0x108e0, 0x108f2, 0x108f4, 0x108f5, 0x108fb, 0x1091b, 0x1091f, 0x10939, 0x1093f, 0x1093f, 0x10980, 0x109b7, 0x109bc, 0x109cf, 0x109d2, 0x10a03, 0x10a05, 0x10a06, 0x10a0c,
                        0x10a13, 0x10a15, 0x10a17, 0x10a19, 0x10a35, 0x10a38, 0x10a3a, 0x10a3f, 0x10a48, 0x10a50, 0x10a58, 0x10a60, 0x10a9f, 0x10ac0, 0x10ae6, 0x10aeb, 0x10af6, 0x10b00, 0x10b35,
                        0x10b39, 0x10b55, 0x10b58, 0x10b72, 0x10b78, 0x10b91, 0x10b99, 0x10b9c, 0x10ba9, 0x10baf, 0x10c00, 0x10c48, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x10cfa, 0x10d27, 0x10d30,
                        0x10d39, 0x10e60, 0x10e7e, 0x10f00, 0x10f27, 0x10f30, 0x10f59, 0x10fe0, 0x10ff6, 0x11000, 0x1104d, 0x11052, 0x1106f, 0x1107f, 0x110c1, 0x110cd, 0x110cd, 0x110d0, 0x110e8,
                        0x110f0, 0x110f9, 0x11100, 0x11134, 0x11136, 0x11146, 0x11150, 0x11176, 0x11180, 0x111cd, 0x111d0, 0x111df, 0x111e1, 0x111f4, 0x11200, 0x11211, 0x11213, 0x1123e, 0x11280,
                        0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, 0x1128f, 0x1129d, 0x1129f, 0x112a9, 0x112b0, 0x112ea, 0x112f0, 0x112f9, 0x11300, 0x11303, 0x11305, 0x1130c, 0x1130f, 0x11310,
                        0x11313, 0x11328, 0x1132a, 0x11330, 0x11332, 0x11333, 0x11335, 0x11339, 0x1133b, 0x11344, 0x11347, 0x11348, 0x1134b, 0x1134d, 0x11350, 0x11350, 0x11357, 0x11357, 0x1135d,
                        0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, 0x11400, 0x11459, 0x1145b, 0x1145b, 0x1145d, 0x1145f, 0x11480, 0x114c7, 0x114d0, 0x114d9, 0x11580, 0x115b5, 0x115b8, 0x115dd,
                        0x11600, 0x11644, 0x11650, 0x11659, 0x11660, 0x1166c, 0x11680, 0x116b8, 0x116c0, 0x116c9, 0x11700, 0x1171a, 0x1171d, 0x1172b, 0x11730, 0x1173f, 0x11800, 0x1183b, 0x118a0,
                        0x118f2, 0x118ff, 0x118ff, 0x119a0, 0x119a7, 0x119aa, 0x119d7, 0x119da, 0x119e4, 0x11a00, 0x11a47, 0x11a50, 0x11aa2, 0x11ac0, 0x11af8, 0x11c00, 0x11c08, 0x11c0a, 0x11c36,
                        0x11c38, 0x11c45, 0x11c50, 0x11c6c, 0x11c70, 0x11c8f, 0x11c92, 0x11ca7, 0x11ca9, 0x11cb6, 0x11d00, 0x11d06, 0x11d08, 0x11d09, 0x11d0b, 0x11d36, 0x11d3a, 0x11d3a, 0x11d3c,
                        0x11d3d, 0x11d3f, 0x11d47, 0x11d50, 0x11d59, 0x11d60, 0x11d65, 0x11d67, 0x11d68, 0x11d6a, 0x11d8e, 0x11d90, 0x11d91, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef8,
                        0x11fc0, 0x11ff1, 0x11fff, 0x12399, 0x12400, 0x1246e, 0x12470, 0x12474, 0x12480, 0x12543, 0x13000, 0x1342e, 0x13430, 0x13438, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40,
                        0x16a5e, 0x16a60, 0x16a69, 0x16a6e, 0x16a6f, 0x16ad0, 0x16aed, 0x16af0, 0x16af5, 0x16b00, 0x16b45, 0x16b50, 0x16b59, 0x16b5b, 0x16b61, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f,
                        0x16e40, 0x16e9a, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, 0x16f8f, 0x16f9f, 0x16fe0, 0x16fe3, 0x17000, 0x187f7, 0x18800, 0x18af2, 0x1b000, 0x1b11e, 0x1b150, 0x1b152, 0x1b164,
                        0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, 0x1bc70, 0x1bc7c, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9c, 0x1bca3, 0x1d000, 0x1d0f5, 0x1d100, 0x1d126, 0x1d129, 0x1d1e8,
                        0x1d200, 0x1d245, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4a9,
                        0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c3, 0x1d4c5, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c, 0x1d51e, 0x1d539, 0x1d53b, 0x1d53e,
                        0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d552, 0x1d6a5, 0x1d6a8, 0x1d7cb, 0x1d7ce, 0x1da8b, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1e000, 0x1e006, 0x1e008,
                        0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, 0x1e14e, 0x1e14f, 0x1e2c0, 0x1e2f9, 0x1e2ff, 0x1e2ff,
                        0x1e800, 0x1e8c4, 0x1e8c7, 0x1e8d6, 0x1e900, 0x1e94b, 0x1e950, 0x1e959, 0x1e95e, 0x1e95f, 0x1ec71, 0x1ecb4, 0x1ed01, 0x1ed3d, 0x1ee00, 0x1ee03, 0x1ee05, 0x1ee1f, 0x1ee21,
                        0x1ee22, 0x1ee24, 0x1ee24, 0x1ee27, 0x1ee27, 0x1ee29, 0x1ee32, 0x1ee34, 0x1ee37, 0x1ee39, 0x1ee39, 0x1ee3b, 0x1ee3b, 0x1ee42, 0x1ee42, 0x1ee47, 0x1ee47, 0x1ee49, 0x1ee49,
                        0x1ee4b, 0x1ee4b, 0x1ee4d, 0x1ee4f, 0x1ee51, 0x1ee52, 0x1ee54, 0x1ee54, 0x1ee57, 0x1ee57, 0x1ee59, 0x1ee59, 0x1ee5b, 0x1ee5b, 0x1ee5d, 0x1ee5d, 0x1ee5f, 0x1ee5f, 0x1ee61,
                        0x1ee62, 0x1ee64, 0x1ee64, 0x1ee67, 0x1ee6a, 0x1ee6c, 0x1ee72, 0x1ee74, 0x1ee77, 0x1ee79, 0x1ee7c, 0x1ee7e, 0x1ee7e, 0x1ee80, 0x1ee89, 0x1ee8b, 0x1ee9b, 0x1eea1, 0x1eea3,
                        0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x1eef0, 0x1eef1, 0x1f000, 0x1f02b, 0x1f030, 0x1f093, 0x1f0a0, 0x1f0ae, 0x1f0b1, 0x1f0bf, 0x1f0c1, 0x1f0cf, 0x1f0d1, 0x1f0f5, 0x1f100,
                        0x1f10c, 0x1f110, 0x1f16c, 0x1f170, 0x1f1ac, 0x1f1e6, 0x1f202, 0x1f210, 0x1f23b, 0x1f240, 0x1f248, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d5, 0x1f6e0, 0x1f6ec,
                        0x1f6f0, 0x1f6fa, 0x1f700, 0x1f773, 0x1f780, 0x1f7d8, 0x1f7e0, 0x1f7eb, 0x1f800, 0x1f80b, 0x1f810, 0x1f847, 0x1f850, 0x1f859, 0x1f860, 0x1f887, 0x1f890, 0x1f8ad, 0x1f900,
                        0x1f90b, 0x1f90d, 0x1f971, 0x1f973, 0x1f976, 0x1f97a, 0x1f9a2, 0x1f9a5, 0x1f9aa, 0x1f9ae, 0x1f9ca, 0x1f9cd, 0x1fa53, 0x1fa60, 0x1fa6d, 0x1fa70, 0x1fa73, 0x1fa78, 0x1fa7a,
                        0x1fa80, 0x1fa82, 0x1fa90, 0x1fa95, 0x20000, 0x2a6d6, 0x2a700, 0x2b734, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, 0x2f800, 0x2fa1d, 0xe0001, 0xe0001, 0xe0020,
                        0xe007f, 0xe0100, 0xe01ef, 0xf0000, 0xffffd, 0x100000, 0x10fffd));
    }

    private static void populateBIDI_C() {
        SET_ENCODINGS.put("Bidi_C", CodePointSet.createNoDedup(0x061c, 0x061c, 0x200e, 0x200f, 0x202a, 0x202e, 0x2066, 0x2069));
    }

    private static void populateBIDI_M() {
        SET_ENCODINGS.put("Bidi_M", CodePointSet.createNoDedup(0x0028, 0x0029, 0x003c, 0x003c, 0x003e, 0x003e, 0x005b, 0x005b, 0x005d, 0x005d, 0x007b, 0x007b, 0x007d, 0x007d, 0x00ab, 0x00ab, 0x00bb,
                        0x00bb, 0x0f3a, 0x0f3d, 0x169b, 0x169c, 0x2039, 0x203a, 0x2045, 0x2046, 0x207d, 0x207e, 0x208d, 0x208e, 0x2140, 0x2140, 0x2201, 0x2204, 0x2208, 0x220d, 0x2211, 0x2211, 0x2215,
                        0x2216, 0x221a, 0x221d, 0x221f, 0x2222, 0x2224, 0x2224, 0x2226, 0x2226, 0x222b, 0x2233, 0x2239, 0x2239, 0x223b, 0x224c, 0x2252, 0x2255, 0x225f, 0x2260, 0x2262, 0x2262, 0x2264,
                        0x226b, 0x226e, 0x228c, 0x228f, 0x2292, 0x2298, 0x2298, 0x22a2, 0x22a3, 0x22a6, 0x22b8, 0x22be, 0x22bf, 0x22c9, 0x22cd, 0x22d0, 0x22d1, 0x22d6, 0x22ed, 0x22f0, 0x22ff, 0x2308,
                        0x230b, 0x2320, 0x2321, 0x2329, 0x232a, 0x2768, 0x2775, 0x27c0, 0x27c0, 0x27c3, 0x27c6, 0x27c8, 0x27c9, 0x27cb, 0x27cd, 0x27d3, 0x27d6, 0x27dc, 0x27de, 0x27e2, 0x27ef, 0x2983,
                        0x2998, 0x299b, 0x29a0, 0x29a2, 0x29af, 0x29b8, 0x29b8, 0x29c0, 0x29c5, 0x29c9, 0x29c9, 0x29ce, 0x29d2, 0x29d4, 0x29d5, 0x29d8, 0x29dc, 0x29e1, 0x29e1, 0x29e3, 0x29e5, 0x29e8,
                        0x29e9, 0x29f4, 0x29f9, 0x29fc, 0x29fd, 0x2a0a, 0x2a1c, 0x2a1e, 0x2a21, 0x2a24, 0x2a24, 0x2a26, 0x2a26, 0x2a29, 0x2a29, 0x2a2b, 0x2a2e, 0x2a34, 0x2a35, 0x2a3c, 0x2a3e, 0x2a57,
                        0x2a58, 0x2a64, 0x2a65, 0x2a6a, 0x2a6d, 0x2a6f, 0x2a70, 0x2a73, 0x2a74, 0x2a79, 0x2aa3, 0x2aa6, 0x2aad, 0x2aaf, 0x2ad6, 0x2adc, 0x2adc, 0x2ade, 0x2ade, 0x2ae2, 0x2ae6, 0x2aec,
                        0x2aee, 0x2af3, 0x2af3, 0x2af7, 0x2afb, 0x2afd, 0x2afd, 0x2bfe, 0x2bfe, 0x2e02, 0x2e05, 0x2e09, 0x2e0a, 0x2e0c, 0x2e0d, 0x2e1c, 0x2e1d, 0x2e20, 0x2e29, 0x3008, 0x3011, 0x3014,
                        0x301b, 0xfe59, 0xfe5e, 0xfe64, 0xfe65, 0xff08, 0xff09, 0xff1c, 0xff1c, 0xff1e, 0xff1e, 0xff3b, 0xff3b, 0xff3d, 0xff3d, 0xff5b, 0xff5b, 0xff5d, 0xff5d, 0xff5f, 0xff60, 0xff62,
                        0xff63, 0x1d6db, 0x1d6db, 0x1d715, 0x1d715, 0x1d74f, 0x1d74f, 0x1d789, 0x1d789, 0x1d7c3, 0x1d7c3));
    }

    private static void populateCI() {
        SET_ENCODINGS.put("CI", CodePointSet.createNoDedup(0x0027, 0x0027, 0x002e, 0x002e, 0x003a, 0x003a, 0x005e, 0x005e, 0x0060, 0x0060, 0x00a8, 0x00a8, 0x00ad, 0x00ad, 0x00af, 0x00af, 0x00b4,
                        0x00b4, 0x00b7, 0x00b8, 0x02b0, 0x036f, 0x0374, 0x0375, 0x037a, 0x037a, 0x0384, 0x0385, 0x0387, 0x0387, 0x0483, 0x0489, 0x0559, 0x0559, 0x0591, 0x05bd, 0x05bf, 0x05bf, 0x05c1,
                        0x05c2, 0x05c4, 0x05c5, 0x05c7, 0x05c7, 0x05f4, 0x05f4, 0x0600, 0x0605, 0x0610, 0x061a, 0x061c, 0x061c, 0x0640, 0x0640, 0x064b, 0x065f, 0x0670, 0x0670, 0x06d6, 0x06dd, 0x06df,
                        0x06e8, 0x06ea, 0x06ed, 0x070f, 0x070f, 0x0711, 0x0711, 0x0730, 0x074a, 0x07a6, 0x07b0, 0x07eb, 0x07f5, 0x07fa, 0x07fa, 0x07fd, 0x07fd, 0x0816, 0x082d, 0x0859, 0x085b, 0x08d3,
                        0x0902, 0x093a, 0x093a, 0x093c, 0x093c, 0x0941, 0x0948, 0x094d, 0x094d, 0x0951, 0x0957, 0x0962, 0x0963, 0x0971, 0x0971, 0x0981, 0x0981, 0x09bc, 0x09bc, 0x09c1, 0x09c4, 0x09cd,
                        0x09cd, 0x09e2, 0x09e3, 0x09fe, 0x09fe, 0x0a01, 0x0a02, 0x0a3c, 0x0a3c, 0x0a41, 0x0a42, 0x0a47, 0x0a48, 0x0a4b, 0x0a4d, 0x0a51, 0x0a51, 0x0a70, 0x0a71, 0x0a75, 0x0a75, 0x0a81,
                        0x0a82, 0x0abc, 0x0abc, 0x0ac1, 0x0ac5, 0x0ac7, 0x0ac8, 0x0acd, 0x0acd, 0x0ae2, 0x0ae3, 0x0afa, 0x0aff, 0x0b01, 0x0b01, 0x0b3c, 0x0b3c, 0x0b3f, 0x0b3f, 0x0b41, 0x0b44, 0x0b4d,
                        0x0b4d, 0x0b56, 0x0b56, 0x0b62, 0x0b63, 0x0b82, 0x0b82, 0x0bc0, 0x0bc0, 0x0bcd, 0x0bcd, 0x0c00, 0x0c00, 0x0c04, 0x0c04, 0x0c3e, 0x0c40, 0x0c46, 0x0c48, 0x0c4a, 0x0c4d, 0x0c55,
                        0x0c56, 0x0c62, 0x0c63, 0x0c81, 0x0c81, 0x0cbc, 0x0cbc, 0x0cbf, 0x0cbf, 0x0cc6, 0x0cc6, 0x0ccc, 0x0ccd, 0x0ce2, 0x0ce3, 0x0d00, 0x0d01, 0x0d3b, 0x0d3c, 0x0d41, 0x0d44, 0x0d4d,
                        0x0d4d, 0x0d62, 0x0d63, 0x0dca, 0x0dca, 0x0dd2, 0x0dd4, 0x0dd6, 0x0dd6, 0x0e31, 0x0e31, 0x0e34, 0x0e3a, 0x0e46, 0x0e4e, 0x0eb1, 0x0eb1, 0x0eb4, 0x0ebc, 0x0ec6, 0x0ec6, 0x0ec8,
                        0x0ecd, 0x0f18, 0x0f19, 0x0f35, 0x0f35, 0x0f37, 0x0f37, 0x0f39, 0x0f39, 0x0f71, 0x0f7e, 0x0f80, 0x0f84, 0x0f86, 0x0f87, 0x0f8d, 0x0f97, 0x0f99, 0x0fbc, 0x0fc6, 0x0fc6, 0x102d,
                        0x1030, 0x1032, 0x1037, 0x1039, 0x103a, 0x103d, 0x103e, 0x1058, 0x1059, 0x105e, 0x1060, 0x1071, 0x1074, 0x1082, 0x1082, 0x1085, 0x1086, 0x108d, 0x108d, 0x109d, 0x109d, 0x10fc,
                        0x10fc, 0x135d, 0x135f, 0x1712, 0x1714, 0x1732, 0x1734, 0x1752, 0x1753, 0x1772, 0x1773, 0x17b4, 0x17b5, 0x17b7, 0x17bd, 0x17c6, 0x17c6, 0x17c9, 0x17d3, 0x17d7, 0x17d7, 0x17dd,
                        0x17dd, 0x180b, 0x180e, 0x1843, 0x1843, 0x1885, 0x1886, 0x18a9, 0x18a9, 0x1920, 0x1922, 0x1927, 0x1928, 0x1932, 0x1932, 0x1939, 0x193b, 0x1a17, 0x1a18, 0x1a1b, 0x1a1b, 0x1a56,
                        0x1a56, 0x1a58, 0x1a5e, 0x1a60, 0x1a60, 0x1a62, 0x1a62, 0x1a65, 0x1a6c, 0x1a73, 0x1a7c, 0x1a7f, 0x1a7f, 0x1aa7, 0x1aa7, 0x1ab0, 0x1abe, 0x1b00, 0x1b03, 0x1b34, 0x1b34, 0x1b36,
                        0x1b3a, 0x1b3c, 0x1b3c, 0x1b42, 0x1b42, 0x1b6b, 0x1b73, 0x1b80, 0x1b81, 0x1ba2, 0x1ba5, 0x1ba8, 0x1ba9, 0x1bab, 0x1bad, 0x1be6, 0x1be6, 0x1be8, 0x1be9, 0x1bed, 0x1bed, 0x1bef,
                        0x1bf1, 0x1c2c, 0x1c33, 0x1c36, 0x1c37, 0x1c78, 0x1c7d, 0x1cd0, 0x1cd2, 0x1cd4, 0x1ce0, 0x1ce2, 0x1ce8, 0x1ced, 0x1ced, 0x1cf4, 0x1cf4, 0x1cf8, 0x1cf9, 0x1d2c, 0x1d6a, 0x1d78,
                        0x1d78, 0x1d9b, 0x1df9, 0x1dfb, 0x1dff, 0x1fbd, 0x1fbd, 0x1fbf, 0x1fc1, 0x1fcd, 0x1fcf, 0x1fdd, 0x1fdf, 0x1fed, 0x1fef, 0x1ffd, 0x1ffe, 0x200b, 0x200f, 0x2018, 0x2019, 0x2024,
                        0x2024, 0x2027, 0x2027, 0x202a, 0x202e, 0x2060, 0x2064, 0x2066, 0x206f, 0x2071, 0x2071, 0x207f, 0x207f, 0x2090, 0x209c, 0x20d0, 0x20f0, 0x2c7c, 0x2c7d, 0x2cef, 0x2cf1, 0x2d6f,
                        0x2d6f, 0x2d7f, 0x2d7f, 0x2de0, 0x2dff, 0x2e2f, 0x2e2f, 0x3005, 0x3005, 0x302a, 0x302d, 0x3031, 0x3035, 0x303b, 0x303b, 0x3099, 0x309e, 0x30fc, 0x30fe, 0xa015, 0xa015, 0xa4f8,
                        0xa4fd, 0xa60c, 0xa60c, 0xa66f, 0xa672, 0xa674, 0xa67d, 0xa67f, 0xa67f, 0xa69c, 0xa69f, 0xa6f0, 0xa6f1, 0xa700, 0xa721, 0xa770, 0xa770, 0xa788, 0xa78a, 0xa7f8, 0xa7f9, 0xa802,
                        0xa802, 0xa806, 0xa806, 0xa80b, 0xa80b, 0xa825, 0xa826, 0xa8c4, 0xa8c5, 0xa8e0, 0xa8f1, 0xa8ff, 0xa8ff, 0xa926, 0xa92d, 0xa947, 0xa951, 0xa980, 0xa982, 0xa9b3, 0xa9b3, 0xa9b6,
                        0xa9b9, 0xa9bc, 0xa9bd, 0xa9cf, 0xa9cf, 0xa9e5, 0xa9e6, 0xaa29, 0xaa2e, 0xaa31, 0xaa32, 0xaa35, 0xaa36, 0xaa43, 0xaa43, 0xaa4c, 0xaa4c, 0xaa70, 0xaa70, 0xaa7c, 0xaa7c, 0xaab0,
                        0xaab0, 0xaab2, 0xaab4, 0xaab7, 0xaab8, 0xaabe, 0xaabf, 0xaac1, 0xaac1, 0xaadd, 0xaadd, 0xaaec, 0xaaed, 0xaaf3, 0xaaf4, 0xaaf6, 0xaaf6, 0xab5b, 0xab5f, 0xabe5, 0xabe5, 0xabe8,
                        0xabe8, 0xabed, 0xabed, 0xfb1e, 0xfb1e, 0xfbb2, 0xfbc1, 0xfe00, 0xfe0f, 0xfe13, 0xfe13, 0xfe20, 0xfe2f, 0xfe52, 0xfe52, 0xfe55, 0xfe55, 0xfeff, 0xfeff, 0xff07, 0xff07, 0xff0e,
                        0xff0e, 0xff1a, 0xff1a, 0xff3e, 0xff3e, 0xff40, 0xff40, 0xff70, 0xff70, 0xff9e, 0xff9f, 0xffe3, 0xffe3, 0xfff9, 0xfffb, 0x101fd, 0x101fd, 0x102e0, 0x102e0, 0x10376, 0x1037a,
                        0x10a01, 0x10a03, 0x10a05, 0x10a06, 0x10a0c, 0x10a0f, 0x10a38, 0x10a3a, 0x10a3f, 0x10a3f, 0x10ae5, 0x10ae6, 0x10d24, 0x10d27, 0x10f46, 0x10f50, 0x11001, 0x11001, 0x11038,
                        0x11046, 0x1107f, 0x11081, 0x110b3, 0x110b6, 0x110b9, 0x110ba, 0x110bd, 0x110bd, 0x110cd, 0x110cd, 0x11100, 0x11102, 0x11127, 0x1112b, 0x1112d, 0x11134, 0x11173, 0x11173,
                        0x11180, 0x11181, 0x111b6, 0x111be, 0x111c9, 0x111cc, 0x1122f, 0x11231, 0x11234, 0x11234, 0x11236, 0x11237, 0x1123e, 0x1123e, 0x112df, 0x112df, 0x112e3, 0x112ea, 0x11300,
                        0x11301, 0x1133b, 0x1133c, 0x11340, 0x11340, 0x11366, 0x1136c, 0x11370, 0x11374, 0x11438, 0x1143f, 0x11442, 0x11444, 0x11446, 0x11446, 0x1145e, 0x1145e, 0x114b3, 0x114b8,
                        0x114ba, 0x114ba, 0x114bf, 0x114c0, 0x114c2, 0x114c3, 0x115b2, 0x115b5, 0x115bc, 0x115bd, 0x115bf, 0x115c0, 0x115dc, 0x115dd, 0x11633, 0x1163a, 0x1163d, 0x1163d, 0x1163f,
                        0x11640, 0x116ab, 0x116ab, 0x116ad, 0x116ad, 0x116b0, 0x116b5, 0x116b7, 0x116b7, 0x1171d, 0x1171f, 0x11722, 0x11725, 0x11727, 0x1172b, 0x1182f, 0x11837, 0x11839, 0x1183a,
                        0x119d4, 0x119d7, 0x119da, 0x119db, 0x119e0, 0x119e0, 0x11a01, 0x11a0a, 0x11a33, 0x11a38, 0x11a3b, 0x11a3e, 0x11a47, 0x11a47, 0x11a51, 0x11a56, 0x11a59, 0x11a5b, 0x11a8a,
                        0x11a96, 0x11a98, 0x11a99, 0x11c30, 0x11c36, 0x11c38, 0x11c3d, 0x11c3f, 0x11c3f, 0x11c92, 0x11ca7, 0x11caa, 0x11cb0, 0x11cb2, 0x11cb3, 0x11cb5, 0x11cb6, 0x11d31, 0x11d36,
                        0x11d3a, 0x11d3a, 0x11d3c, 0x11d3d, 0x11d3f, 0x11d45, 0x11d47, 0x11d47, 0x11d90, 0x11d91, 0x11d95, 0x11d95, 0x11d97, 0x11d97, 0x11ef3, 0x11ef4, 0x13430, 0x13438, 0x16af0,
                        0x16af4, 0x16b30, 0x16b36, 0x16b40, 0x16b43, 0x16f4f, 0x16f4f, 0x16f8f, 0x16f9f, 0x16fe0, 0x16fe1, 0x16fe3, 0x16fe3, 0x1bc9d, 0x1bc9e, 0x1bca0, 0x1bca3, 0x1d167, 0x1d169,
                        0x1d173, 0x1d182, 0x1d185, 0x1d18b, 0x1d1aa, 0x1d1ad, 0x1d242, 0x1d244, 0x1da00, 0x1da36, 0x1da3b, 0x1da6c, 0x1da75, 0x1da75, 0x1da84, 0x1da84, 0x1da9b, 0x1da9f, 0x1daa1,
                        0x1daaf, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, 0x1e130, 0x1e13d, 0x1e2ec, 0x1e2ef, 0x1e8d0, 0x1e8d6, 0x1e944, 0x1e94b,
                        0x1f3fb, 0x1f3ff, 0xe0001, 0xe0001, 0xe0020, 0xe007f, 0xe0100, 0xe01ef));
    }

    private static void populateCWCF() {
        SET_ENCODINGS.put("CWCF", CodePointSet.createNoDedup(0x0041, 0x005a, 0x00b5, 0x00b5, 0x00c0, 0x00d6, 0x00d8, 0x00df, 0x0100, 0x0100, 0x0102, 0x0102, 0x0104, 0x0104, 0x0106, 0x0106, 0x0108,
                        0x0108, 0x010a, 0x010a, 0x010c, 0x010c, 0x010e, 0x010e, 0x0110, 0x0110, 0x0112, 0x0112, 0x0114, 0x0114, 0x0116, 0x0116, 0x0118, 0x0118, 0x011a, 0x011a, 0x011c, 0x011c, 0x011e,
                        0x011e, 0x0120, 0x0120, 0x0122, 0x0122, 0x0124, 0x0124, 0x0126, 0x0126, 0x0128, 0x0128, 0x012a, 0x012a, 0x012c, 0x012c, 0x012e, 0x012e, 0x0130, 0x0130, 0x0132, 0x0132, 0x0134,
                        0x0134, 0x0136, 0x0136, 0x0139, 0x0139, 0x013b, 0x013b, 0x013d, 0x013d, 0x013f, 0x013f, 0x0141, 0x0141, 0x0143, 0x0143, 0x0145, 0x0145, 0x0147, 0x0147, 0x0149, 0x014a, 0x014c,
                        0x014c, 0x014e, 0x014e, 0x0150, 0x0150, 0x0152, 0x0152, 0x0154, 0x0154, 0x0156, 0x0156, 0x0158, 0x0158, 0x015a, 0x015a, 0x015c, 0x015c, 0x015e, 0x015e, 0x0160, 0x0160, 0x0162,
                        0x0162, 0x0164, 0x0164, 0x0166, 0x0166, 0x0168, 0x0168, 0x016a, 0x016a, 0x016c, 0x016c, 0x016e, 0x016e, 0x0170, 0x0170, 0x0172, 0x0172, 0x0174, 0x0174, 0x0176, 0x0176, 0x0178,
                        0x0179, 0x017b, 0x017b, 0x017d, 0x017d, 0x017f, 0x017f, 0x0181, 0x0182, 0x0184, 0x0184, 0x0186, 0x0187, 0x0189, 0x018b, 0x018e, 0x0191, 0x0193, 0x0194, 0x0196, 0x0198, 0x019c,
                        0x019d, 0x019f, 0x01a0, 0x01a2, 0x01a2, 0x01a4, 0x01a4, 0x01a6, 0x01a7, 0x01a9, 0x01a9, 0x01ac, 0x01ac, 0x01ae, 0x01af, 0x01b1, 0x01b3, 0x01b5, 0x01b5, 0x01b7, 0x01b8, 0x01bc,
                        0x01bc, 0x01c4, 0x01c5, 0x01c7, 0x01c8, 0x01ca, 0x01cb, 0x01cd, 0x01cd, 0x01cf, 0x01cf, 0x01d1, 0x01d1, 0x01d3, 0x01d3, 0x01d5, 0x01d5, 0x01d7, 0x01d7, 0x01d9, 0x01d9, 0x01db,
                        0x01db, 0x01de, 0x01de, 0x01e0, 0x01e0, 0x01e2, 0x01e2, 0x01e4, 0x01e4, 0x01e6, 0x01e6, 0x01e8, 0x01e8, 0x01ea, 0x01ea, 0x01ec, 0x01ec, 0x01ee, 0x01ee, 0x01f1, 0x01f2, 0x01f4,
                        0x01f4, 0x01f6, 0x01f8, 0x01fa, 0x01fa, 0x01fc, 0x01fc, 0x01fe, 0x01fe, 0x0200, 0x0200, 0x0202, 0x0202, 0x0204, 0x0204, 0x0206, 0x0206, 0x0208, 0x0208, 0x020a, 0x020a, 0x020c,
                        0x020c, 0x020e, 0x020e, 0x0210, 0x0210, 0x0212, 0x0212, 0x0214, 0x0214, 0x0216, 0x0216, 0x0218, 0x0218, 0x021a, 0x021a, 0x021c, 0x021c, 0x021e, 0x021e, 0x0220, 0x0220, 0x0222,
                        0x0222, 0x0224, 0x0224, 0x0226, 0x0226, 0x0228, 0x0228, 0x022a, 0x022a, 0x022c, 0x022c, 0x022e, 0x022e, 0x0230, 0x0230, 0x0232, 0x0232, 0x023a, 0x023b, 0x023d, 0x023e, 0x0241,
                        0x0241, 0x0243, 0x0246, 0x0248, 0x0248, 0x024a, 0x024a, 0x024c, 0x024c, 0x024e, 0x024e, 0x0345, 0x0345, 0x0370, 0x0370, 0x0372, 0x0372, 0x0376, 0x0376, 0x037f, 0x037f, 0x0386,
                        0x0386, 0x0388, 0x038a, 0x038c, 0x038c, 0x038e, 0x038f, 0x0391, 0x03a1, 0x03a3, 0x03ab, 0x03c2, 0x03c2, 0x03cf, 0x03d1, 0x03d5, 0x03d6, 0x03d8, 0x03d8, 0x03da, 0x03da, 0x03dc,
                        0x03dc, 0x03de, 0x03de, 0x03e0, 0x03e0, 0x03e2, 0x03e2, 0x03e4, 0x03e4, 0x03e6, 0x03e6, 0x03e8, 0x03e8, 0x03ea, 0x03ea, 0x03ec, 0x03ec, 0x03ee, 0x03ee, 0x03f0, 0x03f1, 0x03f4,
                        0x03f5, 0x03f7, 0x03f7, 0x03f9, 0x03fa, 0x03fd, 0x042f, 0x0460, 0x0460, 0x0462, 0x0462, 0x0464, 0x0464, 0x0466, 0x0466, 0x0468, 0x0468, 0x046a, 0x046a, 0x046c, 0x046c, 0x046e,
                        0x046e, 0x0470, 0x0470, 0x0472, 0x0472, 0x0474, 0x0474, 0x0476, 0x0476, 0x0478, 0x0478, 0x047a, 0x047a, 0x047c, 0x047c, 0x047e, 0x047e, 0x0480, 0x0480, 0x048a, 0x048a, 0x048c,
                        0x048c, 0x048e, 0x048e, 0x0490, 0x0490, 0x0492, 0x0492, 0x0494, 0x0494, 0x0496, 0x0496, 0x0498, 0x0498, 0x049a, 0x049a, 0x049c, 0x049c, 0x049e, 0x049e, 0x04a0, 0x04a0, 0x04a2,
                        0x04a2, 0x04a4, 0x04a4, 0x04a6, 0x04a6, 0x04a8, 0x04a8, 0x04aa, 0x04aa, 0x04ac, 0x04ac, 0x04ae, 0x04ae, 0x04b0, 0x04b0, 0x04b2, 0x04b2, 0x04b4, 0x04b4, 0x04b6, 0x04b6, 0x04b8,
                        0x04b8, 0x04ba, 0x04ba, 0x04bc, 0x04bc, 0x04be, 0x04be, 0x04c0, 0x04c1, 0x04c3, 0x04c3, 0x04c5, 0x04c5, 0x04c7, 0x04c7, 0x04c9, 0x04c9, 0x04cb, 0x04cb, 0x04cd, 0x04cd, 0x04d0,
                        0x04d0, 0x04d2, 0x04d2, 0x04d4, 0x04d4, 0x04d6, 0x04d6, 0x04d8, 0x04d8, 0x04da, 0x04da, 0x04dc, 0x04dc, 0x04de, 0x04de, 0x04e0, 0x04e0, 0x04e2, 0x04e2, 0x04e4, 0x04e4, 0x04e6,
                        0x04e6, 0x04e8, 0x04e8, 0x04ea, 0x04ea, 0x04ec, 0x04ec, 0x04ee, 0x04ee, 0x04f0, 0x04f0, 0x04f2, 0x04f2, 0x04f4, 0x04f4, 0x04f6, 0x04f6, 0x04f8, 0x04f8, 0x04fa, 0x04fa, 0x04fc,
                        0x04fc, 0x04fe, 0x04fe, 0x0500, 0x0500, 0x0502, 0x0502, 0x0504, 0x0504, 0x0506, 0x0506, 0x0508, 0x0508, 0x050a, 0x050a, 0x050c, 0x050c, 0x050e, 0x050e, 0x0510, 0x0510, 0x0512,
                        0x0512, 0x0514, 0x0514, 0x0516, 0x0516, 0x0518, 0x0518, 0x051a, 0x051a, 0x051c, 0x051c, 0x051e, 0x051e, 0x0520, 0x0520, 0x0522, 0x0522, 0x0524, 0x0524, 0x0526, 0x0526, 0x0528,
                        0x0528, 0x052a, 0x052a, 0x052c, 0x052c, 0x052e, 0x052e, 0x0531, 0x0556, 0x0587, 0x0587, 0x10a0, 0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x13f8, 0x13fd, 0x1c80, 0x1c88, 0x1c90,
                        0x1cba, 0x1cbd, 0x1cbf, 0x1e00, 0x1e00, 0x1e02, 0x1e02, 0x1e04, 0x1e04, 0x1e06, 0x1e06, 0x1e08, 0x1e08, 0x1e0a, 0x1e0a, 0x1e0c, 0x1e0c, 0x1e0e, 0x1e0e, 0x1e10, 0x1e10, 0x1e12,
                        0x1e12, 0x1e14, 0x1e14, 0x1e16, 0x1e16, 0x1e18, 0x1e18, 0x1e1a, 0x1e1a, 0x1e1c, 0x1e1c, 0x1e1e, 0x1e1e, 0x1e20, 0x1e20, 0x1e22, 0x1e22, 0x1e24, 0x1e24, 0x1e26, 0x1e26, 0x1e28,
                        0x1e28, 0x1e2a, 0x1e2a, 0x1e2c, 0x1e2c, 0x1e2e, 0x1e2e, 0x1e30, 0x1e30, 0x1e32, 0x1e32, 0x1e34, 0x1e34, 0x1e36, 0x1e36, 0x1e38, 0x1e38, 0x1e3a, 0x1e3a, 0x1e3c, 0x1e3c, 0x1e3e,
                        0x1e3e, 0x1e40, 0x1e40, 0x1e42, 0x1e42, 0x1e44, 0x1e44, 0x1e46, 0x1e46, 0x1e48, 0x1e48, 0x1e4a, 0x1e4a, 0x1e4c, 0x1e4c, 0x1e4e, 0x1e4e, 0x1e50, 0x1e50, 0x1e52, 0x1e52, 0x1e54,
                        0x1e54, 0x1e56, 0x1e56, 0x1e58, 0x1e58, 0x1e5a, 0x1e5a, 0x1e5c, 0x1e5c, 0x1e5e, 0x1e5e, 0x1e60, 0x1e60, 0x1e62, 0x1e62, 0x1e64, 0x1e64, 0x1e66, 0x1e66, 0x1e68, 0x1e68, 0x1e6a,
                        0x1e6a, 0x1e6c, 0x1e6c, 0x1e6e, 0x1e6e, 0x1e70, 0x1e70, 0x1e72, 0x1e72, 0x1e74, 0x1e74, 0x1e76, 0x1e76, 0x1e78, 0x1e78, 0x1e7a, 0x1e7a, 0x1e7c, 0x1e7c, 0x1e7e, 0x1e7e, 0x1e80,
                        0x1e80, 0x1e82, 0x1e82, 0x1e84, 0x1e84, 0x1e86, 0x1e86, 0x1e88, 0x1e88, 0x1e8a, 0x1e8a, 0x1e8c, 0x1e8c, 0x1e8e, 0x1e8e, 0x1e90, 0x1e90, 0x1e92, 0x1e92, 0x1e94, 0x1e94, 0x1e9a,
                        0x1e9b, 0x1e9e, 0x1e9e, 0x1ea0, 0x1ea0, 0x1ea2, 0x1ea2, 0x1ea4, 0x1ea4, 0x1ea6, 0x1ea6, 0x1ea8, 0x1ea8, 0x1eaa, 0x1eaa, 0x1eac, 0x1eac, 0x1eae, 0x1eae, 0x1eb0, 0x1eb0, 0x1eb2,
                        0x1eb2, 0x1eb4, 0x1eb4, 0x1eb6, 0x1eb6, 0x1eb8, 0x1eb8, 0x1eba, 0x1eba, 0x1ebc, 0x1ebc, 0x1ebe, 0x1ebe, 0x1ec0, 0x1ec0, 0x1ec2, 0x1ec2, 0x1ec4, 0x1ec4, 0x1ec6, 0x1ec6, 0x1ec8,
                        0x1ec8, 0x1eca, 0x1eca, 0x1ecc, 0x1ecc, 0x1ece, 0x1ece, 0x1ed0, 0x1ed0, 0x1ed2, 0x1ed2, 0x1ed4, 0x1ed4, 0x1ed6, 0x1ed6, 0x1ed8, 0x1ed8, 0x1eda, 0x1eda, 0x1edc, 0x1edc, 0x1ede,
                        0x1ede, 0x1ee0, 0x1ee0, 0x1ee2, 0x1ee2, 0x1ee4, 0x1ee4, 0x1ee6, 0x1ee6, 0x1ee8, 0x1ee8, 0x1eea, 0x1eea, 0x1eec, 0x1eec, 0x1eee, 0x1eee, 0x1ef0, 0x1ef0, 0x1ef2, 0x1ef2, 0x1ef4,
                        0x1ef4, 0x1ef6, 0x1ef6, 0x1ef8, 0x1ef8, 0x1efa, 0x1efa, 0x1efc, 0x1efc, 0x1efe, 0x1efe, 0x1f08, 0x1f0f, 0x1f18, 0x1f1d, 0x1f28, 0x1f2f, 0x1f38, 0x1f3f, 0x1f48, 0x1f4d, 0x1f59,
                        0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f5f, 0x1f68, 0x1f6f, 0x1f80, 0x1faf, 0x1fb2, 0x1fb4, 0x1fb7, 0x1fbc, 0x1fc2, 0x1fc4, 0x1fc7, 0x1fcc, 0x1fd8, 0x1fdb, 0x1fe8,
                        0x1fec, 0x1ff2, 0x1ff4, 0x1ff7, 0x1ffc, 0x2126, 0x2126, 0x212a, 0x212b, 0x2132, 0x2132, 0x2160, 0x216f, 0x2183, 0x2183, 0x24b6, 0x24cf, 0x2c00, 0x2c2e, 0x2c60, 0x2c60, 0x2c62,
                        0x2c64, 0x2c67, 0x2c67, 0x2c69, 0x2c69, 0x2c6b, 0x2c6b, 0x2c6d, 0x2c70, 0x2c72, 0x2c72, 0x2c75, 0x2c75, 0x2c7e, 0x2c80, 0x2c82, 0x2c82, 0x2c84, 0x2c84, 0x2c86, 0x2c86, 0x2c88,
                        0x2c88, 0x2c8a, 0x2c8a, 0x2c8c, 0x2c8c, 0x2c8e, 0x2c8e, 0x2c90, 0x2c90, 0x2c92, 0x2c92, 0x2c94, 0x2c94, 0x2c96, 0x2c96, 0x2c98, 0x2c98, 0x2c9a, 0x2c9a, 0x2c9c, 0x2c9c, 0x2c9e,
                        0x2c9e, 0x2ca0, 0x2ca0, 0x2ca2, 0x2ca2, 0x2ca4, 0x2ca4, 0x2ca6, 0x2ca6, 0x2ca8, 0x2ca8, 0x2caa, 0x2caa, 0x2cac, 0x2cac, 0x2cae, 0x2cae, 0x2cb0, 0x2cb0, 0x2cb2, 0x2cb2, 0x2cb4,
                        0x2cb4, 0x2cb6, 0x2cb6, 0x2cb8, 0x2cb8, 0x2cba, 0x2cba, 0x2cbc, 0x2cbc, 0x2cbe, 0x2cbe, 0x2cc0, 0x2cc0, 0x2cc2, 0x2cc2, 0x2cc4, 0x2cc4, 0x2cc6, 0x2cc6, 0x2cc8, 0x2cc8, 0x2cca,
                        0x2cca, 0x2ccc, 0x2ccc, 0x2cce, 0x2cce, 0x2cd0, 0x2cd0, 0x2cd2, 0x2cd2, 0x2cd4, 0x2cd4, 0x2cd6, 0x2cd6, 0x2cd8, 0x2cd8, 0x2cda, 0x2cda, 0x2cdc, 0x2cdc, 0x2cde, 0x2cde, 0x2ce0,
                        0x2ce0, 0x2ce2, 0x2ce2, 0x2ceb, 0x2ceb, 0x2ced, 0x2ced, 0x2cf2, 0x2cf2, 0xa640, 0xa640, 0xa642, 0xa642, 0xa644, 0xa644, 0xa646, 0xa646, 0xa648, 0xa648, 0xa64a, 0xa64a, 0xa64c,
                        0xa64c, 0xa64e, 0xa64e, 0xa650, 0xa650, 0xa652, 0xa652, 0xa654, 0xa654, 0xa656, 0xa656, 0xa658, 0xa658, 0xa65a, 0xa65a, 0xa65c, 0xa65c, 0xa65e, 0xa65e, 0xa660, 0xa660, 0xa662,
                        0xa662, 0xa664, 0xa664, 0xa666, 0xa666, 0xa668, 0xa668, 0xa66a, 0xa66a, 0xa66c, 0xa66c, 0xa680, 0xa680, 0xa682, 0xa682, 0xa684, 0xa684, 0xa686, 0xa686, 0xa688, 0xa688, 0xa68a,
                        0xa68a, 0xa68c, 0xa68c, 0xa68e, 0xa68e, 0xa690, 0xa690, 0xa692, 0xa692, 0xa694, 0xa694, 0xa696, 0xa696, 0xa698, 0xa698, 0xa69a, 0xa69a, 0xa722, 0xa722, 0xa724, 0xa724, 0xa726,
                        0xa726, 0xa728, 0xa728, 0xa72a, 0xa72a, 0xa72c, 0xa72c, 0xa72e, 0xa72e, 0xa732, 0xa732, 0xa734, 0xa734, 0xa736, 0xa736, 0xa738, 0xa738, 0xa73a, 0xa73a, 0xa73c, 0xa73c, 0xa73e,
                        0xa73e, 0xa740, 0xa740, 0xa742, 0xa742, 0xa744, 0xa744, 0xa746, 0xa746, 0xa748, 0xa748, 0xa74a, 0xa74a, 0xa74c, 0xa74c, 0xa74e, 0xa74e, 0xa750, 0xa750, 0xa752, 0xa752, 0xa754,
                        0xa754, 0xa756, 0xa756, 0xa758, 0xa758, 0xa75a, 0xa75a, 0xa75c, 0xa75c, 0xa75e, 0xa75e, 0xa760, 0xa760, 0xa762, 0xa762, 0xa764, 0xa764, 0xa766, 0xa766, 0xa768, 0xa768, 0xa76a,
                        0xa76a, 0xa76c, 0xa76c, 0xa76e, 0xa76e, 0xa779, 0xa779, 0xa77b, 0xa77b, 0xa77d, 0xa77e, 0xa780, 0xa780, 0xa782, 0xa782, 0xa784, 0xa784, 0xa786, 0xa786, 0xa78b, 0xa78b, 0xa78d,
                        0xa78d, 0xa790, 0xa790, 0xa792, 0xa792, 0xa796, 0xa796, 0xa798, 0xa798, 0xa79a, 0xa79a, 0xa79c, 0xa79c, 0xa79e, 0xa79e, 0xa7a0, 0xa7a0, 0xa7a2, 0xa7a2, 0xa7a4, 0xa7a4, 0xa7a6,
                        0xa7a6, 0xa7a8, 0xa7a8, 0xa7aa, 0xa7ae, 0xa7b0, 0xa7b4, 0xa7b6, 0xa7b6, 0xa7b8, 0xa7b8, 0xa7ba, 0xa7ba, 0xa7bc, 0xa7bc, 0xa7be, 0xa7be, 0xa7c2, 0xa7c2, 0xa7c4, 0xa7c6, 0xab70,
                        0xabbf, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xff21, 0xff3a, 0x10400, 0x10427, 0x104b0, 0x104d3, 0x10c80, 0x10cb2, 0x118a0, 0x118bf, 0x16e40, 0x16e5f, 0x1e900, 0x1e921));
    }

    private static void populateCWCM() {
        SET_ENCODINGS.put("CWCM", CodePointSet.createNoDedup(0x0041, 0x005a, 0x0061, 0x007a, 0x00b5, 0x00b5, 0x00c0, 0x00d6, 0x00d8, 0x00f6, 0x00f8, 0x0137, 0x0139, 0x018c, 0x018e, 0x019a, 0x019c,
                        0x01a9, 0x01ac, 0x01b9, 0x01bc, 0x01bd, 0x01bf, 0x01bf, 0x01c4, 0x0220, 0x0222, 0x0233, 0x023a, 0x0254, 0x0256, 0x0257, 0x0259, 0x0259, 0x025b, 0x025c, 0x0260, 0x0261, 0x0263,
                        0x0263, 0x0265, 0x0266, 0x0268, 0x026c, 0x026f, 0x026f, 0x0271, 0x0272, 0x0275, 0x0275, 0x027d, 0x027d, 0x0280, 0x0280, 0x0282, 0x0283, 0x0287, 0x028c, 0x0292, 0x0292, 0x029d,
                        0x029e, 0x0345, 0x0345, 0x0370, 0x0373, 0x0376, 0x0377, 0x037b, 0x037d, 0x037f, 0x037f, 0x0386, 0x0386, 0x0388, 0x038a, 0x038c, 0x038c, 0x038e, 0x03a1, 0x03a3, 0x03d1, 0x03d5,
                        0x03f5, 0x03f7, 0x03fb, 0x03fd, 0x0481, 0x048a, 0x052f, 0x0531, 0x0556, 0x0561, 0x0587, 0x10a0, 0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x10d0, 0x10fa, 0x10fd, 0x10ff, 0x13a0,
                        0x13f5, 0x13f8, 0x13fd, 0x1c80, 0x1c88, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1d79, 0x1d79, 0x1d7d, 0x1d7d, 0x1d8e, 0x1d8e, 0x1e00, 0x1e9b, 0x1e9e, 0x1e9e, 0x1ea0, 0x1f15, 0x1f18,
                        0x1f1d, 0x1f20, 0x1f45, 0x1f48, 0x1f4d, 0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f7d, 0x1f80, 0x1fb4, 0x1fb6, 0x1fbc, 0x1fbe, 0x1fbe, 0x1fc2,
                        0x1fc4, 0x1fc6, 0x1fcc, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fdb, 0x1fe0, 0x1fec, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffc, 0x2126, 0x2126, 0x212a, 0x212b, 0x2132, 0x2132, 0x214e, 0x214e, 0x2160,
                        0x217f, 0x2183, 0x2184, 0x24b6, 0x24e9, 0x2c00, 0x2c2e, 0x2c30, 0x2c5e, 0x2c60, 0x2c70, 0x2c72, 0x2c73, 0x2c75, 0x2c76, 0x2c7e, 0x2ce3, 0x2ceb, 0x2cee, 0x2cf2, 0x2cf3, 0x2d00,
                        0x2d25, 0x2d27, 0x2d27, 0x2d2d, 0x2d2d, 0xa640, 0xa66d, 0xa680, 0xa69b, 0xa722, 0xa72f, 0xa732, 0xa76f, 0xa779, 0xa787, 0xa78b, 0xa78d, 0xa790, 0xa794, 0xa796, 0xa7ae, 0xa7b0,
                        0xa7bf, 0xa7c2, 0xa7c6, 0xab53, 0xab53, 0xab70, 0xabbf, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xff21, 0xff3a, 0xff41, 0xff5a, 0x10400, 0x1044f, 0x104b0, 0x104d3, 0x104d8, 0x104fb,
                        0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x118a0, 0x118df, 0x16e40, 0x16e7f, 0x1e900, 0x1e943));
    }

    private static void populateCWKCF() {
        SET_ENCODINGS.put("CWKCF", CodePointSet.createNoDedup(0x0041, 0x005a, 0x00a0, 0x00a0, 0x00a8, 0x00a8, 0x00aa, 0x00aa, 0x00ad, 0x00ad, 0x00af, 0x00af, 0x00b2, 0x00b5, 0x00b8, 0x00ba, 0x00bc,
                        0x00be, 0x00c0, 0x00d6, 0x00d8, 0x00df, 0x0100, 0x0100, 0x0102, 0x0102, 0x0104, 0x0104, 0x0106, 0x0106, 0x0108, 0x0108, 0x010a, 0x010a, 0x010c, 0x010c, 0x010e, 0x010e, 0x0110,
                        0x0110, 0x0112, 0x0112, 0x0114, 0x0114, 0x0116, 0x0116, 0x0118, 0x0118, 0x011a, 0x011a, 0x011c, 0x011c, 0x011e, 0x011e, 0x0120, 0x0120, 0x0122, 0x0122, 0x0124, 0x0124, 0x0126,
                        0x0126, 0x0128, 0x0128, 0x012a, 0x012a, 0x012c, 0x012c, 0x012e, 0x012e, 0x0130, 0x0130, 0x0132, 0x0134, 0x0136, 0x0136, 0x0139, 0x0139, 0x013b, 0x013b, 0x013d, 0x013d, 0x013f,
                        0x0141, 0x0143, 0x0143, 0x0145, 0x0145, 0x0147, 0x0147, 0x0149, 0x014a, 0x014c, 0x014c, 0x014e, 0x014e, 0x0150, 0x0150, 0x0152, 0x0152, 0x0154, 0x0154, 0x0156, 0x0156, 0x0158,
                        0x0158, 0x015a, 0x015a, 0x015c, 0x015c, 0x015e, 0x015e, 0x0160, 0x0160, 0x0162, 0x0162, 0x0164, 0x0164, 0x0166, 0x0166, 0x0168, 0x0168, 0x016a, 0x016a, 0x016c, 0x016c, 0x016e,
                        0x016e, 0x0170, 0x0170, 0x0172, 0x0172, 0x0174, 0x0174, 0x0176, 0x0176, 0x0178, 0x0179, 0x017b, 0x017b, 0x017d, 0x017d, 0x017f, 0x017f, 0x0181, 0x0182, 0x0184, 0x0184, 0x0186,
                        0x0187, 0x0189, 0x018b, 0x018e, 0x0191, 0x0193, 0x0194, 0x0196, 0x0198, 0x019c, 0x019d, 0x019f, 0x01a0, 0x01a2, 0x01a2, 0x01a4, 0x01a4, 0x01a6, 0x01a7, 0x01a9, 0x01a9, 0x01ac,
                        0x01ac, 0x01ae, 0x01af, 0x01b1, 0x01b3, 0x01b5, 0x01b5, 0x01b7, 0x01b8, 0x01bc, 0x01bc, 0x01c4, 0x01cd, 0x01cf, 0x01cf, 0x01d1, 0x01d1, 0x01d3, 0x01d3, 0x01d5, 0x01d5, 0x01d7,
                        0x01d7, 0x01d9, 0x01d9, 0x01db, 0x01db, 0x01de, 0x01de, 0x01e0, 0x01e0, 0x01e2, 0x01e2, 0x01e4, 0x01e4, 0x01e6, 0x01e6, 0x01e8, 0x01e8, 0x01ea, 0x01ea, 0x01ec, 0x01ec, 0x01ee,
                        0x01ee, 0x01f1, 0x01f4, 0x01f6, 0x01f8, 0x01fa, 0x01fa, 0x01fc, 0x01fc, 0x01fe, 0x01fe, 0x0200, 0x0200, 0x0202, 0x0202, 0x0204, 0x0204, 0x0206, 0x0206, 0x0208, 0x0208, 0x020a,
                        0x020a, 0x020c, 0x020c, 0x020e, 0x020e, 0x0210, 0x0210, 0x0212, 0x0212, 0x0214, 0x0214, 0x0216, 0x0216, 0x0218, 0x0218, 0x021a, 0x021a, 0x021c, 0x021c, 0x021e, 0x021e, 0x0220,
                        0x0220, 0x0222, 0x0222, 0x0224, 0x0224, 0x0226, 0x0226, 0x0228, 0x0228, 0x022a, 0x022a, 0x022c, 0x022c, 0x022e, 0x022e, 0x0230, 0x0230, 0x0232, 0x0232, 0x023a, 0x023b, 0x023d,
                        0x023e, 0x0241, 0x0241, 0x0243, 0x0246, 0x0248, 0x0248, 0x024a, 0x024a, 0x024c, 0x024c, 0x024e, 0x024e, 0x02b0, 0x02b8, 0x02d8, 0x02dd, 0x02e0, 0x02e4, 0x0340, 0x0341, 0x0343,
                        0x0345, 0x034f, 0x034f, 0x0370, 0x0370, 0x0372, 0x0372, 0x0374, 0x0374, 0x0376, 0x0376, 0x037a, 0x037a, 0x037e, 0x037f, 0x0384, 0x038a, 0x038c, 0x038c, 0x038e, 0x038f, 0x0391,
                        0x03a1, 0x03a3, 0x03ab, 0x03c2, 0x03c2, 0x03cf, 0x03d6, 0x03d8, 0x03d8, 0x03da, 0x03da, 0x03dc, 0x03dc, 0x03de, 0x03de, 0x03e0, 0x03e0, 0x03e2, 0x03e2, 0x03e4, 0x03e4, 0x03e6,
                        0x03e6, 0x03e8, 0x03e8, 0x03ea, 0x03ea, 0x03ec, 0x03ec, 0x03ee, 0x03ee, 0x03f0, 0x03f2, 0x03f4, 0x03f5, 0x03f7, 0x03f7, 0x03f9, 0x03fa, 0x03fd, 0x042f, 0x0460, 0x0460, 0x0462,
                        0x0462, 0x0464, 0x0464, 0x0466, 0x0466, 0x0468, 0x0468, 0x046a, 0x046a, 0x046c, 0x046c, 0x046e, 0x046e, 0x0470, 0x0470, 0x0472, 0x0472, 0x0474, 0x0474, 0x0476, 0x0476, 0x0478,
                        0x0478, 0x047a, 0x047a, 0x047c, 0x047c, 0x047e, 0x047e, 0x0480, 0x0480, 0x048a, 0x048a, 0x048c, 0x048c, 0x048e, 0x048e, 0x0490, 0x0490, 0x0492, 0x0492, 0x0494, 0x0494, 0x0496,
                        0x0496, 0x0498, 0x0498, 0x049a, 0x049a, 0x049c, 0x049c, 0x049e, 0x049e, 0x04a0, 0x04a0, 0x04a2, 0x04a2, 0x04a4, 0x04a4, 0x04a6, 0x04a6, 0x04a8, 0x04a8, 0x04aa, 0x04aa, 0x04ac,
                        0x04ac, 0x04ae, 0x04ae, 0x04b0, 0x04b0, 0x04b2, 0x04b2, 0x04b4, 0x04b4, 0x04b6, 0x04b6, 0x04b8, 0x04b8, 0x04ba, 0x04ba, 0x04bc, 0x04bc, 0x04be, 0x04be, 0x04c0, 0x04c1, 0x04c3,
                        0x04c3, 0x04c5, 0x04c5, 0x04c7, 0x04c7, 0x04c9, 0x04c9, 0x04cb, 0x04cb, 0x04cd, 0x04cd, 0x04d0, 0x04d0, 0x04d2, 0x04d2, 0x04d4, 0x04d4, 0x04d6, 0x04d6, 0x04d8, 0x04d8, 0x04da,
                        0x04da, 0x04dc, 0x04dc, 0x04de, 0x04de, 0x04e0, 0x04e0, 0x04e2, 0x04e2, 0x04e4, 0x04e4, 0x04e6, 0x04e6, 0x04e8, 0x04e8, 0x04ea, 0x04ea, 0x04ec, 0x04ec, 0x04ee, 0x04ee, 0x04f0,
                        0x04f0, 0x04f2, 0x04f2, 0x04f4, 0x04f4, 0x04f6, 0x04f6, 0x04f8, 0x04f8, 0x04fa, 0x04fa, 0x04fc, 0x04fc, 0x04fe, 0x04fe, 0x0500, 0x0500, 0x0502, 0x0502, 0x0504, 0x0504, 0x0506,
                        0x0506, 0x0508, 0x0508, 0x050a, 0x050a, 0x050c, 0x050c, 0x050e, 0x050e, 0x0510, 0x0510, 0x0512, 0x0512, 0x0514, 0x0514, 0x0516, 0x0516, 0x0518, 0x0518, 0x051a, 0x051a, 0x051c,
                        0x051c, 0x051e, 0x051e, 0x0520, 0x0520, 0x0522, 0x0522, 0x0524, 0x0524, 0x0526, 0x0526, 0x0528, 0x0528, 0x052a, 0x052a, 0x052c, 0x052c, 0x052e, 0x052e, 0x0531, 0x0556, 0x0587,
                        0x0587, 0x061c, 0x061c, 0x0675, 0x0678, 0x0958, 0x095f, 0x09dc, 0x09dd, 0x09df, 0x09df, 0x0a33, 0x0a33, 0x0a36, 0x0a36, 0x0a59, 0x0a5b, 0x0a5e, 0x0a5e, 0x0b5c, 0x0b5d, 0x0e33,
                        0x0e33, 0x0eb3, 0x0eb3, 0x0edc, 0x0edd, 0x0f0c, 0x0f0c, 0x0f43, 0x0f43, 0x0f4d, 0x0f4d, 0x0f52, 0x0f52, 0x0f57, 0x0f57, 0x0f5c, 0x0f5c, 0x0f69, 0x0f69, 0x0f73, 0x0f73, 0x0f75,
                        0x0f79, 0x0f81, 0x0f81, 0x0f93, 0x0f93, 0x0f9d, 0x0f9d, 0x0fa2, 0x0fa2, 0x0fa7, 0x0fa7, 0x0fac, 0x0fac, 0x0fb9, 0x0fb9, 0x10a0, 0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x10fc,
                        0x10fc, 0x115f, 0x1160, 0x13f8, 0x13fd, 0x17b4, 0x17b5, 0x180b, 0x180e, 0x1c80, 0x1c88, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1d2c, 0x1d2e, 0x1d30, 0x1d3a, 0x1d3c, 0x1d4d, 0x1d4f,
                        0x1d6a, 0x1d78, 0x1d78, 0x1d9b, 0x1dbf, 0x1e00, 0x1e00, 0x1e02, 0x1e02, 0x1e04, 0x1e04, 0x1e06, 0x1e06, 0x1e08, 0x1e08, 0x1e0a, 0x1e0a, 0x1e0c, 0x1e0c, 0x1e0e, 0x1e0e, 0x1e10,
                        0x1e10, 0x1e12, 0x1e12, 0x1e14, 0x1e14, 0x1e16, 0x1e16, 0x1e18, 0x1e18, 0x1e1a, 0x1e1a, 0x1e1c, 0x1e1c, 0x1e1e, 0x1e1e, 0x1e20, 0x1e20, 0x1e22, 0x1e22, 0x1e24, 0x1e24, 0x1e26,
                        0x1e26, 0x1e28, 0x1e28, 0x1e2a, 0x1e2a, 0x1e2c, 0x1e2c, 0x1e2e, 0x1e2e, 0x1e30, 0x1e30, 0x1e32, 0x1e32, 0x1e34, 0x1e34, 0x1e36, 0x1e36, 0x1e38, 0x1e38, 0x1e3a, 0x1e3a, 0x1e3c,
                        0x1e3c, 0x1e3e, 0x1e3e, 0x1e40, 0x1e40, 0x1e42, 0x1e42, 0x1e44, 0x1e44, 0x1e46, 0x1e46, 0x1e48, 0x1e48, 0x1e4a, 0x1e4a, 0x1e4c, 0x1e4c, 0x1e4e, 0x1e4e, 0x1e50, 0x1e50, 0x1e52,
                        0x1e52, 0x1e54, 0x1e54, 0x1e56, 0x1e56, 0x1e58, 0x1e58, 0x1e5a, 0x1e5a, 0x1e5c, 0x1e5c, 0x1e5e, 0x1e5e, 0x1e60, 0x1e60, 0x1e62, 0x1e62, 0x1e64, 0x1e64, 0x1e66, 0x1e66, 0x1e68,
                        0x1e68, 0x1e6a, 0x1e6a, 0x1e6c, 0x1e6c, 0x1e6e, 0x1e6e, 0x1e70, 0x1e70, 0x1e72, 0x1e72, 0x1e74, 0x1e74, 0x1e76, 0x1e76, 0x1e78, 0x1e78, 0x1e7a, 0x1e7a, 0x1e7c, 0x1e7c, 0x1e7e,
                        0x1e7e, 0x1e80, 0x1e80, 0x1e82, 0x1e82, 0x1e84, 0x1e84, 0x1e86, 0x1e86, 0x1e88, 0x1e88, 0x1e8a, 0x1e8a, 0x1e8c, 0x1e8c, 0x1e8e, 0x1e8e, 0x1e90, 0x1e90, 0x1e92, 0x1e92, 0x1e94,
                        0x1e94, 0x1e9a, 0x1e9b, 0x1e9e, 0x1e9e, 0x1ea0, 0x1ea0, 0x1ea2, 0x1ea2, 0x1ea4, 0x1ea4, 0x1ea6, 0x1ea6, 0x1ea8, 0x1ea8, 0x1eaa, 0x1eaa, 0x1eac, 0x1eac, 0x1eae, 0x1eae, 0x1eb0,
                        0x1eb0, 0x1eb2, 0x1eb2, 0x1eb4, 0x1eb4, 0x1eb6, 0x1eb6, 0x1eb8, 0x1eb8, 0x1eba, 0x1eba, 0x1ebc, 0x1ebc, 0x1ebe, 0x1ebe, 0x1ec0, 0x1ec0, 0x1ec2, 0x1ec2, 0x1ec4, 0x1ec4, 0x1ec6,
                        0x1ec6, 0x1ec8, 0x1ec8, 0x1eca, 0x1eca, 0x1ecc, 0x1ecc, 0x1ece, 0x1ece, 0x1ed0, 0x1ed0, 0x1ed2, 0x1ed2, 0x1ed4, 0x1ed4, 0x1ed6, 0x1ed6, 0x1ed8, 0x1ed8, 0x1eda, 0x1eda, 0x1edc,
                        0x1edc, 0x1ede, 0x1ede, 0x1ee0, 0x1ee0, 0x1ee2, 0x1ee2, 0x1ee4, 0x1ee4, 0x1ee6, 0x1ee6, 0x1ee8, 0x1ee8, 0x1eea, 0x1eea, 0x1eec, 0x1eec, 0x1eee, 0x1eee, 0x1ef0, 0x1ef0, 0x1ef2,
                        0x1ef2, 0x1ef4, 0x1ef4, 0x1ef6, 0x1ef6, 0x1ef8, 0x1ef8, 0x1efa, 0x1efa, 0x1efc, 0x1efc, 0x1efe, 0x1efe, 0x1f08, 0x1f0f, 0x1f18, 0x1f1d, 0x1f28, 0x1f2f, 0x1f38, 0x1f3f, 0x1f48,
                        0x1f4d, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f5f, 0x1f68, 0x1f6f, 0x1f71, 0x1f71, 0x1f73, 0x1f73, 0x1f75, 0x1f75, 0x1f77, 0x1f77, 0x1f79, 0x1f79, 0x1f7b,
                        0x1f7b, 0x1f7d, 0x1f7d, 0x1f80, 0x1faf, 0x1fb2, 0x1fb4, 0x1fb7, 0x1fc4, 0x1fc7, 0x1fcf, 0x1fd3, 0x1fd3, 0x1fd8, 0x1fdb, 0x1fdd, 0x1fdf, 0x1fe3, 0x1fe3, 0x1fe8, 0x1fef, 0x1ff2,
                        0x1ff4, 0x1ff7, 0x1ffe, 0x2000, 0x200f, 0x2011, 0x2011, 0x2017, 0x2017, 0x2024, 0x2026, 0x202a, 0x202f, 0x2033, 0x2034, 0x2036, 0x2037, 0x203c, 0x203c, 0x203e, 0x203e, 0x2047,
                        0x2049, 0x2057, 0x2057, 0x205f, 0x2071, 0x2074, 0x208e, 0x2090, 0x209c, 0x20a8, 0x20a8, 0x2100, 0x2103, 0x2105, 0x2107, 0x2109, 0x2113, 0x2115, 0x2116, 0x2119, 0x211d, 0x2120,
                        0x2122, 0x2124, 0x2124, 0x2126, 0x2126, 0x2128, 0x2128, 0x212a, 0x212d, 0x212f, 0x2139, 0x213b, 0x2140, 0x2145, 0x2149, 0x2150, 0x217f, 0x2183, 0x2183, 0x2189, 0x2189, 0x222c,
                        0x222d, 0x222f, 0x2230, 0x2329, 0x232a, 0x2460, 0x24ea, 0x2a0c, 0x2a0c, 0x2a74, 0x2a76, 0x2adc, 0x2adc, 0x2c00, 0x2c2e, 0x2c60, 0x2c60, 0x2c62, 0x2c64, 0x2c67, 0x2c67, 0x2c69,
                        0x2c69, 0x2c6b, 0x2c6b, 0x2c6d, 0x2c70, 0x2c72, 0x2c72, 0x2c75, 0x2c75, 0x2c7c, 0x2c80, 0x2c82, 0x2c82, 0x2c84, 0x2c84, 0x2c86, 0x2c86, 0x2c88, 0x2c88, 0x2c8a, 0x2c8a, 0x2c8c,
                        0x2c8c, 0x2c8e, 0x2c8e, 0x2c90, 0x2c90, 0x2c92, 0x2c92, 0x2c94, 0x2c94, 0x2c96, 0x2c96, 0x2c98, 0x2c98, 0x2c9a, 0x2c9a, 0x2c9c, 0x2c9c, 0x2c9e, 0x2c9e, 0x2ca0, 0x2ca0, 0x2ca2,
                        0x2ca2, 0x2ca4, 0x2ca4, 0x2ca6, 0x2ca6, 0x2ca8, 0x2ca8, 0x2caa, 0x2caa, 0x2cac, 0x2cac, 0x2cae, 0x2cae, 0x2cb0, 0x2cb0, 0x2cb2, 0x2cb2, 0x2cb4, 0x2cb4, 0x2cb6, 0x2cb6, 0x2cb8,
                        0x2cb8, 0x2cba, 0x2cba, 0x2cbc, 0x2cbc, 0x2cbe, 0x2cbe, 0x2cc0, 0x2cc0, 0x2cc2, 0x2cc2, 0x2cc4, 0x2cc4, 0x2cc6, 0x2cc6, 0x2cc8, 0x2cc8, 0x2cca, 0x2cca, 0x2ccc, 0x2ccc, 0x2cce,
                        0x2cce, 0x2cd0, 0x2cd0, 0x2cd2, 0x2cd2, 0x2cd4, 0x2cd4, 0x2cd6, 0x2cd6, 0x2cd8, 0x2cd8, 0x2cda, 0x2cda, 0x2cdc, 0x2cdc, 0x2cde, 0x2cde, 0x2ce0, 0x2ce0, 0x2ce2, 0x2ce2, 0x2ceb,
                        0x2ceb, 0x2ced, 0x2ced, 0x2cf2, 0x2cf2, 0x2d6f, 0x2d6f, 0x2e9f, 0x2e9f, 0x2ef3, 0x2ef3, 0x2f00, 0x2fd5, 0x3000, 0x3000, 0x3036, 0x3036, 0x3038, 0x303a, 0x309b, 0x309c, 0x309f,
                        0x309f, 0x30ff, 0x30ff, 0x3131, 0x318e, 0x3192, 0x319f, 0x3200, 0x321e, 0x3220, 0x3247, 0x3250, 0x327e, 0x3280, 0x33ff, 0xa640, 0xa640, 0xa642, 0xa642, 0xa644, 0xa644, 0xa646,
                        0xa646, 0xa648, 0xa648, 0xa64a, 0xa64a, 0xa64c, 0xa64c, 0xa64e, 0xa64e, 0xa650, 0xa650, 0xa652, 0xa652, 0xa654, 0xa654, 0xa656, 0xa656, 0xa658, 0xa658, 0xa65a, 0xa65a, 0xa65c,
                        0xa65c, 0xa65e, 0xa65e, 0xa660, 0xa660, 0xa662, 0xa662, 0xa664, 0xa664, 0xa666, 0xa666, 0xa668, 0xa668, 0xa66a, 0xa66a, 0xa66c, 0xa66c, 0xa680, 0xa680, 0xa682, 0xa682, 0xa684,
                        0xa684, 0xa686, 0xa686, 0xa688, 0xa688, 0xa68a, 0xa68a, 0xa68c, 0xa68c, 0xa68e, 0xa68e, 0xa690, 0xa690, 0xa692, 0xa692, 0xa694, 0xa694, 0xa696, 0xa696, 0xa698, 0xa698, 0xa69a,
                        0xa69a, 0xa69c, 0xa69d, 0xa722, 0xa722, 0xa724, 0xa724, 0xa726, 0xa726, 0xa728, 0xa728, 0xa72a, 0xa72a, 0xa72c, 0xa72c, 0xa72e, 0xa72e, 0xa732, 0xa732, 0xa734, 0xa734, 0xa736,
                        0xa736, 0xa738, 0xa738, 0xa73a, 0xa73a, 0xa73c, 0xa73c, 0xa73e, 0xa73e, 0xa740, 0xa740, 0xa742, 0xa742, 0xa744, 0xa744, 0xa746, 0xa746, 0xa748, 0xa748, 0xa74a, 0xa74a, 0xa74c,
                        0xa74c, 0xa74e, 0xa74e, 0xa750, 0xa750, 0xa752, 0xa752, 0xa754, 0xa754, 0xa756, 0xa756, 0xa758, 0xa758, 0xa75a, 0xa75a, 0xa75c, 0xa75c, 0xa75e, 0xa75e, 0xa760, 0xa760, 0xa762,
                        0xa762, 0xa764, 0xa764, 0xa766, 0xa766, 0xa768, 0xa768, 0xa76a, 0xa76a, 0xa76c, 0xa76c, 0xa76e, 0xa76e, 0xa770, 0xa770, 0xa779, 0xa779, 0xa77b, 0xa77b, 0xa77d, 0xa77e, 0xa780,
                        0xa780, 0xa782, 0xa782, 0xa784, 0xa784, 0xa786, 0xa786, 0xa78b, 0xa78b, 0xa78d, 0xa78d, 0xa790, 0xa790, 0xa792, 0xa792, 0xa796, 0xa796, 0xa798, 0xa798, 0xa79a, 0xa79a, 0xa79c,
                        0xa79c, 0xa79e, 0xa79e, 0xa7a0, 0xa7a0, 0xa7a2, 0xa7a2, 0xa7a4, 0xa7a4, 0xa7a6, 0xa7a6, 0xa7a8, 0xa7a8, 0xa7aa, 0xa7ae, 0xa7b0, 0xa7b4, 0xa7b6, 0xa7b6, 0xa7b8, 0xa7b8, 0xa7ba,
                        0xa7ba, 0xa7bc, 0xa7bc, 0xa7be, 0xa7be, 0xa7c2, 0xa7c2, 0xa7c4, 0xa7c6, 0xa7f8, 0xa7f9, 0xab5c, 0xab5f, 0xab70, 0xabbf, 0xf900, 0xfa0d, 0xfa10, 0xfa10, 0xfa12, 0xfa12, 0xfa15,
                        0xfa1e, 0xfa20, 0xfa20, 0xfa22, 0xfa22, 0xfa25, 0xfa26, 0xfa2a, 0xfa6d, 0xfa70, 0xfad9, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xfb1d, 0xfb1d, 0xfb1f, 0xfb36, 0xfb38, 0xfb3c, 0xfb3e,
                        0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfb46, 0xfbb1, 0xfbd3, 0xfd3d, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0, 0xfdfc, 0xfe00, 0xfe19, 0xfe30, 0xfe44, 0xfe47, 0xfe52, 0xfe54,
                        0xfe66, 0xfe68, 0xfe6b, 0xfe70, 0xfe72, 0xfe74, 0xfe74, 0xfe76, 0xfefc, 0xfeff, 0xfeff, 0xff01, 0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, 0xffda, 0xffdc, 0xffe0,
                        0xffe6, 0xffe8, 0xffee, 0xfff0, 0xfff8, 0x10400, 0x10427, 0x104b0, 0x104d3, 0x10c80, 0x10cb2, 0x118a0, 0x118bf, 0x16e40, 0x16e5f, 0x1bca0, 0x1bca3, 0x1d15e, 0x1d164, 0x1d173,
                        0x1d17a, 0x1d1bb, 0x1d1c0, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb,
                        0x1d4bd, 0x1d4c3, 0x1d4c5, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c, 0x1d51e, 0x1d539, 0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a,
                        0x1d550, 0x1d552, 0x1d6a5, 0x1d6a8, 0x1d7cb, 0x1d7ce, 0x1d7ff, 0x1e900, 0x1e921, 0x1ee00, 0x1ee03, 0x1ee05, 0x1ee1f, 0x1ee21, 0x1ee22, 0x1ee24, 0x1ee24, 0x1ee27, 0x1ee27,
                        0x1ee29, 0x1ee32, 0x1ee34, 0x1ee37, 0x1ee39, 0x1ee39, 0x1ee3b, 0x1ee3b, 0x1ee42, 0x1ee42, 0x1ee47, 0x1ee47, 0x1ee49, 0x1ee49, 0x1ee4b, 0x1ee4b, 0x1ee4d, 0x1ee4f, 0x1ee51,
                        0x1ee52, 0x1ee54, 0x1ee54, 0x1ee57, 0x1ee57, 0x1ee59, 0x1ee59, 0x1ee5b, 0x1ee5b, 0x1ee5d, 0x1ee5d, 0x1ee5f, 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64, 0x1ee64, 0x1ee67, 0x1ee6a,
                        0x1ee6c, 0x1ee72, 0x1ee74, 0x1ee77, 0x1ee79, 0x1ee7c, 0x1ee7e, 0x1ee7e, 0x1ee80, 0x1ee89, 0x1ee8b, 0x1ee9b, 0x1eea1, 0x1eea3, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x1f100,
                        0x1f10a, 0x1f110, 0x1f12e, 0x1f130, 0x1f14f, 0x1f16a, 0x1f16c, 0x1f190, 0x1f190, 0x1f200, 0x1f202, 0x1f210, 0x1f23b, 0x1f240, 0x1f248, 0x1f250, 0x1f251, 0x2f800, 0x2fa1d,
                        0xe0000, 0xe0fff));
    }

    private static void populateCWL() {
        SET_ENCODINGS.put("CWL", CodePointSet.createNoDedup(0x0041, 0x005a, 0x00c0, 0x00d6, 0x00d8, 0x00de, 0x0100, 0x0100, 0x0102, 0x0102, 0x0104, 0x0104, 0x0106, 0x0106, 0x0108, 0x0108, 0x010a,
                        0x010a, 0x010c, 0x010c, 0x010e, 0x010e, 0x0110, 0x0110, 0x0112, 0x0112, 0x0114, 0x0114, 0x0116, 0x0116, 0x0118, 0x0118, 0x011a, 0x011a, 0x011c, 0x011c, 0x011e, 0x011e, 0x0120,
                        0x0120, 0x0122, 0x0122, 0x0124, 0x0124, 0x0126, 0x0126, 0x0128, 0x0128, 0x012a, 0x012a, 0x012c, 0x012c, 0x012e, 0x012e, 0x0130, 0x0130, 0x0132, 0x0132, 0x0134, 0x0134, 0x0136,
                        0x0136, 0x0139, 0x0139, 0x013b, 0x013b, 0x013d, 0x013d, 0x013f, 0x013f, 0x0141, 0x0141, 0x0143, 0x0143, 0x0145, 0x0145, 0x0147, 0x0147, 0x014a, 0x014a, 0x014c, 0x014c, 0x014e,
                        0x014e, 0x0150, 0x0150, 0x0152, 0x0152, 0x0154, 0x0154, 0x0156, 0x0156, 0x0158, 0x0158, 0x015a, 0x015a, 0x015c, 0x015c, 0x015e, 0x015e, 0x0160, 0x0160, 0x0162, 0x0162, 0x0164,
                        0x0164, 0x0166, 0x0166, 0x0168, 0x0168, 0x016a, 0x016a, 0x016c, 0x016c, 0x016e, 0x016e, 0x0170, 0x0170, 0x0172, 0x0172, 0x0174, 0x0174, 0x0176, 0x0176, 0x0178, 0x0179, 0x017b,
                        0x017b, 0x017d, 0x017d, 0x0181, 0x0182, 0x0184, 0x0184, 0x0186, 0x0187, 0x0189, 0x018b, 0x018e, 0x0191, 0x0193, 0x0194, 0x0196, 0x0198, 0x019c, 0x019d, 0x019f, 0x01a0, 0x01a2,
                        0x01a2, 0x01a4, 0x01a4, 0x01a6, 0x01a7, 0x01a9, 0x01a9, 0x01ac, 0x01ac, 0x01ae, 0x01af, 0x01b1, 0x01b3, 0x01b5, 0x01b5, 0x01b7, 0x01b8, 0x01bc, 0x01bc, 0x01c4, 0x01c5, 0x01c7,
                        0x01c8, 0x01ca, 0x01cb, 0x01cd, 0x01cd, 0x01cf, 0x01cf, 0x01d1, 0x01d1, 0x01d3, 0x01d3, 0x01d5, 0x01d5, 0x01d7, 0x01d7, 0x01d9, 0x01d9, 0x01db, 0x01db, 0x01de, 0x01de, 0x01e0,
                        0x01e0, 0x01e2, 0x01e2, 0x01e4, 0x01e4, 0x01e6, 0x01e6, 0x01e8, 0x01e8, 0x01ea, 0x01ea, 0x01ec, 0x01ec, 0x01ee, 0x01ee, 0x01f1, 0x01f2, 0x01f4, 0x01f4, 0x01f6, 0x01f8, 0x01fa,
                        0x01fa, 0x01fc, 0x01fc, 0x01fe, 0x01fe, 0x0200, 0x0200, 0x0202, 0x0202, 0x0204, 0x0204, 0x0206, 0x0206, 0x0208, 0x0208, 0x020a, 0x020a, 0x020c, 0x020c, 0x020e, 0x020e, 0x0210,
                        0x0210, 0x0212, 0x0212, 0x0214, 0x0214, 0x0216, 0x0216, 0x0218, 0x0218, 0x021a, 0x021a, 0x021c, 0x021c, 0x021e, 0x021e, 0x0220, 0x0220, 0x0222, 0x0222, 0x0224, 0x0224, 0x0226,
                        0x0226, 0x0228, 0x0228, 0x022a, 0x022a, 0x022c, 0x022c, 0x022e, 0x022e, 0x0230, 0x0230, 0x0232, 0x0232, 0x023a, 0x023b, 0x023d, 0x023e, 0x0241, 0x0241, 0x0243, 0x0246, 0x0248,
                        0x0248, 0x024a, 0x024a, 0x024c, 0x024c, 0x024e, 0x024e, 0x0370, 0x0370, 0x0372, 0x0372, 0x0376, 0x0376, 0x037f, 0x037f, 0x0386, 0x0386, 0x0388, 0x038a, 0x038c, 0x038c, 0x038e,
                        0x038f, 0x0391, 0x03a1, 0x03a3, 0x03ab, 0x03cf, 0x03cf, 0x03d8, 0x03d8, 0x03da, 0x03da, 0x03dc, 0x03dc, 0x03de, 0x03de, 0x03e0, 0x03e0, 0x03e2, 0x03e2, 0x03e4, 0x03e4, 0x03e6,
                        0x03e6, 0x03e8, 0x03e8, 0x03ea, 0x03ea, 0x03ec, 0x03ec, 0x03ee, 0x03ee, 0x03f4, 0x03f4, 0x03f7, 0x03f7, 0x03f9, 0x03fa, 0x03fd, 0x042f, 0x0460, 0x0460, 0x0462, 0x0462, 0x0464,
                        0x0464, 0x0466, 0x0466, 0x0468, 0x0468, 0x046a, 0x046a, 0x046c, 0x046c, 0x046e, 0x046e, 0x0470, 0x0470, 0x0472, 0x0472, 0x0474, 0x0474, 0x0476, 0x0476, 0x0478, 0x0478, 0x047a,
                        0x047a, 0x047c, 0x047c, 0x047e, 0x047e, 0x0480, 0x0480, 0x048a, 0x048a, 0x048c, 0x048c, 0x048e, 0x048e, 0x0490, 0x0490, 0x0492, 0x0492, 0x0494, 0x0494, 0x0496, 0x0496, 0x0498,
                        0x0498, 0x049a, 0x049a, 0x049c, 0x049c, 0x049e, 0x049e, 0x04a0, 0x04a0, 0x04a2, 0x04a2, 0x04a4, 0x04a4, 0x04a6, 0x04a6, 0x04a8, 0x04a8, 0x04aa, 0x04aa, 0x04ac, 0x04ac, 0x04ae,
                        0x04ae, 0x04b0, 0x04b0, 0x04b2, 0x04b2, 0x04b4, 0x04b4, 0x04b6, 0x04b6, 0x04b8, 0x04b8, 0x04ba, 0x04ba, 0x04bc, 0x04bc, 0x04be, 0x04be, 0x04c0, 0x04c1, 0x04c3, 0x04c3, 0x04c5,
                        0x04c5, 0x04c7, 0x04c7, 0x04c9, 0x04c9, 0x04cb, 0x04cb, 0x04cd, 0x04cd, 0x04d0, 0x04d0, 0x04d2, 0x04d2, 0x04d4, 0x04d4, 0x04d6, 0x04d6, 0x04d8, 0x04d8, 0x04da, 0x04da, 0x04dc,
                        0x04dc, 0x04de, 0x04de, 0x04e0, 0x04e0, 0x04e2, 0x04e2, 0x04e4, 0x04e4, 0x04e6, 0x04e6, 0x04e8, 0x04e8, 0x04ea, 0x04ea, 0x04ec, 0x04ec, 0x04ee, 0x04ee, 0x04f0, 0x04f0, 0x04f2,
                        0x04f2, 0x04f4, 0x04f4, 0x04f6, 0x04f6, 0x04f8, 0x04f8, 0x04fa, 0x04fa, 0x04fc, 0x04fc, 0x04fe, 0x04fe, 0x0500, 0x0500, 0x0502, 0x0502, 0x0504, 0x0504, 0x0506, 0x0506, 0x0508,
                        0x0508, 0x050a, 0x050a, 0x050c, 0x050c, 0x050e, 0x050e, 0x0510, 0x0510, 0x0512, 0x0512, 0x0514, 0x0514, 0x0516, 0x0516, 0x0518, 0x0518, 0x051a, 0x051a, 0x051c, 0x051c, 0x051e,
                        0x051e, 0x0520, 0x0520, 0x0522, 0x0522, 0x0524, 0x0524, 0x0526, 0x0526, 0x0528, 0x0528, 0x052a, 0x052a, 0x052c, 0x052c, 0x052e, 0x052e, 0x0531, 0x0556, 0x10a0, 0x10c5, 0x10c7,
                        0x10c7, 0x10cd, 0x10cd, 0x13a0, 0x13f5, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1e00, 0x1e00, 0x1e02, 0x1e02, 0x1e04, 0x1e04, 0x1e06, 0x1e06, 0x1e08, 0x1e08, 0x1e0a, 0x1e0a, 0x1e0c,
                        0x1e0c, 0x1e0e, 0x1e0e, 0x1e10, 0x1e10, 0x1e12, 0x1e12, 0x1e14, 0x1e14, 0x1e16, 0x1e16, 0x1e18, 0x1e18, 0x1e1a, 0x1e1a, 0x1e1c, 0x1e1c, 0x1e1e, 0x1e1e, 0x1e20, 0x1e20, 0x1e22,
                        0x1e22, 0x1e24, 0x1e24, 0x1e26, 0x1e26, 0x1e28, 0x1e28, 0x1e2a, 0x1e2a, 0x1e2c, 0x1e2c, 0x1e2e, 0x1e2e, 0x1e30, 0x1e30, 0x1e32, 0x1e32, 0x1e34, 0x1e34, 0x1e36, 0x1e36, 0x1e38,
                        0x1e38, 0x1e3a, 0x1e3a, 0x1e3c, 0x1e3c, 0x1e3e, 0x1e3e, 0x1e40, 0x1e40, 0x1e42, 0x1e42, 0x1e44, 0x1e44, 0x1e46, 0x1e46, 0x1e48, 0x1e48, 0x1e4a, 0x1e4a, 0x1e4c, 0x1e4c, 0x1e4e,
                        0x1e4e, 0x1e50, 0x1e50, 0x1e52, 0x1e52, 0x1e54, 0x1e54, 0x1e56, 0x1e56, 0x1e58, 0x1e58, 0x1e5a, 0x1e5a, 0x1e5c, 0x1e5c, 0x1e5e, 0x1e5e, 0x1e60, 0x1e60, 0x1e62, 0x1e62, 0x1e64,
                        0x1e64, 0x1e66, 0x1e66, 0x1e68, 0x1e68, 0x1e6a, 0x1e6a, 0x1e6c, 0x1e6c, 0x1e6e, 0x1e6e, 0x1e70, 0x1e70, 0x1e72, 0x1e72, 0x1e74, 0x1e74, 0x1e76, 0x1e76, 0x1e78, 0x1e78, 0x1e7a,
                        0x1e7a, 0x1e7c, 0x1e7c, 0x1e7e, 0x1e7e, 0x1e80, 0x1e80, 0x1e82, 0x1e82, 0x1e84, 0x1e84, 0x1e86, 0x1e86, 0x1e88, 0x1e88, 0x1e8a, 0x1e8a, 0x1e8c, 0x1e8c, 0x1e8e, 0x1e8e, 0x1e90,
                        0x1e90, 0x1e92, 0x1e92, 0x1e94, 0x1e94, 0x1e9e, 0x1e9e, 0x1ea0, 0x1ea0, 0x1ea2, 0x1ea2, 0x1ea4, 0x1ea4, 0x1ea6, 0x1ea6, 0x1ea8, 0x1ea8, 0x1eaa, 0x1eaa, 0x1eac, 0x1eac, 0x1eae,
                        0x1eae, 0x1eb0, 0x1eb0, 0x1eb2, 0x1eb2, 0x1eb4, 0x1eb4, 0x1eb6, 0x1eb6, 0x1eb8, 0x1eb8, 0x1eba, 0x1eba, 0x1ebc, 0x1ebc, 0x1ebe, 0x1ebe, 0x1ec0, 0x1ec0, 0x1ec2, 0x1ec2, 0x1ec4,
                        0x1ec4, 0x1ec6, 0x1ec6, 0x1ec8, 0x1ec8, 0x1eca, 0x1eca, 0x1ecc, 0x1ecc, 0x1ece, 0x1ece, 0x1ed0, 0x1ed0, 0x1ed2, 0x1ed2, 0x1ed4, 0x1ed4, 0x1ed6, 0x1ed6, 0x1ed8, 0x1ed8, 0x1eda,
                        0x1eda, 0x1edc, 0x1edc, 0x1ede, 0x1ede, 0x1ee0, 0x1ee0, 0x1ee2, 0x1ee2, 0x1ee4, 0x1ee4, 0x1ee6, 0x1ee6, 0x1ee8, 0x1ee8, 0x1eea, 0x1eea, 0x1eec, 0x1eec, 0x1eee, 0x1eee, 0x1ef0,
                        0x1ef0, 0x1ef2, 0x1ef2, 0x1ef4, 0x1ef4, 0x1ef6, 0x1ef6, 0x1ef8, 0x1ef8, 0x1efa, 0x1efa, 0x1efc, 0x1efc, 0x1efe, 0x1efe, 0x1f08, 0x1f0f, 0x1f18, 0x1f1d, 0x1f28, 0x1f2f, 0x1f38,
                        0x1f3f, 0x1f48, 0x1f4d, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f5f, 0x1f68, 0x1f6f, 0x1f88, 0x1f8f, 0x1f98, 0x1f9f, 0x1fa8, 0x1faf, 0x1fb8, 0x1fbc, 0x1fc8,
                        0x1fcc, 0x1fd8, 0x1fdb, 0x1fe8, 0x1fec, 0x1ff8, 0x1ffc, 0x2126, 0x2126, 0x212a, 0x212b, 0x2132, 0x2132, 0x2160, 0x216f, 0x2183, 0x2183, 0x24b6, 0x24cf, 0x2c00, 0x2c2e, 0x2c60,
                        0x2c60, 0x2c62, 0x2c64, 0x2c67, 0x2c67, 0x2c69, 0x2c69, 0x2c6b, 0x2c6b, 0x2c6d, 0x2c70, 0x2c72, 0x2c72, 0x2c75, 0x2c75, 0x2c7e, 0x2c80, 0x2c82, 0x2c82, 0x2c84, 0x2c84, 0x2c86,
                        0x2c86, 0x2c88, 0x2c88, 0x2c8a, 0x2c8a, 0x2c8c, 0x2c8c, 0x2c8e, 0x2c8e, 0x2c90, 0x2c90, 0x2c92, 0x2c92, 0x2c94, 0x2c94, 0x2c96, 0x2c96, 0x2c98, 0x2c98, 0x2c9a, 0x2c9a, 0x2c9c,
                        0x2c9c, 0x2c9e, 0x2c9e, 0x2ca0, 0x2ca0, 0x2ca2, 0x2ca2, 0x2ca4, 0x2ca4, 0x2ca6, 0x2ca6, 0x2ca8, 0x2ca8, 0x2caa, 0x2caa, 0x2cac, 0x2cac, 0x2cae, 0x2cae, 0x2cb0, 0x2cb0, 0x2cb2,
                        0x2cb2, 0x2cb4, 0x2cb4, 0x2cb6, 0x2cb6, 0x2cb8, 0x2cb8, 0x2cba, 0x2cba, 0x2cbc, 0x2cbc, 0x2cbe, 0x2cbe, 0x2cc0, 0x2cc0, 0x2cc2, 0x2cc2, 0x2cc4, 0x2cc4, 0x2cc6, 0x2cc6, 0x2cc8,
                        0x2cc8, 0x2cca, 0x2cca, 0x2ccc, 0x2ccc, 0x2cce, 0x2cce, 0x2cd0, 0x2cd0, 0x2cd2, 0x2cd2, 0x2cd4, 0x2cd4, 0x2cd6, 0x2cd6, 0x2cd8, 0x2cd8, 0x2cda, 0x2cda, 0x2cdc, 0x2cdc, 0x2cde,
                        0x2cde, 0x2ce0, 0x2ce0, 0x2ce2, 0x2ce2, 0x2ceb, 0x2ceb, 0x2ced, 0x2ced, 0x2cf2, 0x2cf2, 0xa640, 0xa640, 0xa642, 0xa642, 0xa644, 0xa644, 0xa646, 0xa646, 0xa648, 0xa648, 0xa64a,
                        0xa64a, 0xa64c, 0xa64c, 0xa64e, 0xa64e, 0xa650, 0xa650, 0xa652, 0xa652, 0xa654, 0xa654, 0xa656, 0xa656, 0xa658, 0xa658, 0xa65a, 0xa65a, 0xa65c, 0xa65c, 0xa65e, 0xa65e, 0xa660,
                        0xa660, 0xa662, 0xa662, 0xa664, 0xa664, 0xa666, 0xa666, 0xa668, 0xa668, 0xa66a, 0xa66a, 0xa66c, 0xa66c, 0xa680, 0xa680, 0xa682, 0xa682, 0xa684, 0xa684, 0xa686, 0xa686, 0xa688,
                        0xa688, 0xa68a, 0xa68a, 0xa68c, 0xa68c, 0xa68e, 0xa68e, 0xa690, 0xa690, 0xa692, 0xa692, 0xa694, 0xa694, 0xa696, 0xa696, 0xa698, 0xa698, 0xa69a, 0xa69a, 0xa722, 0xa722, 0xa724,
                        0xa724, 0xa726, 0xa726, 0xa728, 0xa728, 0xa72a, 0xa72a, 0xa72c, 0xa72c, 0xa72e, 0xa72e, 0xa732, 0xa732, 0xa734, 0xa734, 0xa736, 0xa736, 0xa738, 0xa738, 0xa73a, 0xa73a, 0xa73c,
                        0xa73c, 0xa73e, 0xa73e, 0xa740, 0xa740, 0xa742, 0xa742, 0xa744, 0xa744, 0xa746, 0xa746, 0xa748, 0xa748, 0xa74a, 0xa74a, 0xa74c, 0xa74c, 0xa74e, 0xa74e, 0xa750, 0xa750, 0xa752,
                        0xa752, 0xa754, 0xa754, 0xa756, 0xa756, 0xa758, 0xa758, 0xa75a, 0xa75a, 0xa75c, 0xa75c, 0xa75e, 0xa75e, 0xa760, 0xa760, 0xa762, 0xa762, 0xa764, 0xa764, 0xa766, 0xa766, 0xa768,
                        0xa768, 0xa76a, 0xa76a, 0xa76c, 0xa76c, 0xa76e, 0xa76e, 0xa779, 0xa779, 0xa77b, 0xa77b, 0xa77d, 0xa77e, 0xa780, 0xa780, 0xa782, 0xa782, 0xa784, 0xa784, 0xa786, 0xa786, 0xa78b,
                        0xa78b, 0xa78d, 0xa78d, 0xa790, 0xa790, 0xa792, 0xa792, 0xa796, 0xa796, 0xa798, 0xa798, 0xa79a, 0xa79a, 0xa79c, 0xa79c, 0xa79e, 0xa79e, 0xa7a0, 0xa7a0, 0xa7a2, 0xa7a2, 0xa7a4,
                        0xa7a4, 0xa7a6, 0xa7a6, 0xa7a8, 0xa7a8, 0xa7aa, 0xa7ae, 0xa7b0, 0xa7b4, 0xa7b6, 0xa7b6, 0xa7b8, 0xa7b8, 0xa7ba, 0xa7ba, 0xa7bc, 0xa7bc, 0xa7be, 0xa7be, 0xa7c2, 0xa7c2, 0xa7c4,
                        0xa7c6, 0xff21, 0xff3a, 0x10400, 0x10427, 0x104b0, 0x104d3, 0x10c80, 0x10cb2, 0x118a0, 0x118bf, 0x16e40, 0x16e5f, 0x1e900, 0x1e921));
    }

    private static void populateCWT() {
        SET_ENCODINGS.put("CWT", CodePointSet.createNoDedup(0x0061, 0x007a, 0x00b5, 0x00b5, 0x00df, 0x00f6, 0x00f8, 0x00ff, 0x0101, 0x0101, 0x0103, 0x0103, 0x0105, 0x0105, 0x0107, 0x0107, 0x0109,
                        0x0109, 0x010b, 0x010b, 0x010d, 0x010d, 0x010f, 0x010f, 0x0111, 0x0111, 0x0113, 0x0113, 0x0115, 0x0115, 0x0117, 0x0117, 0x0119, 0x0119, 0x011b, 0x011b, 0x011d, 0x011d, 0x011f,
                        0x011f, 0x0121, 0x0121, 0x0123, 0x0123, 0x0125, 0x0125, 0x0127, 0x0127, 0x0129, 0x0129, 0x012b, 0x012b, 0x012d, 0x012d, 0x012f, 0x012f, 0x0131, 0x0131, 0x0133, 0x0133, 0x0135,
                        0x0135, 0x0137, 0x0137, 0x013a, 0x013a, 0x013c, 0x013c, 0x013e, 0x013e, 0x0140, 0x0140, 0x0142, 0x0142, 0x0144, 0x0144, 0x0146, 0x0146, 0x0148, 0x0149, 0x014b, 0x014b, 0x014d,
                        0x014d, 0x014f, 0x014f, 0x0151, 0x0151, 0x0153, 0x0153, 0x0155, 0x0155, 0x0157, 0x0157, 0x0159, 0x0159, 0x015b, 0x015b, 0x015d, 0x015d, 0x015f, 0x015f, 0x0161, 0x0161, 0x0163,
                        0x0163, 0x0165, 0x0165, 0x0167, 0x0167, 0x0169, 0x0169, 0x016b, 0x016b, 0x016d, 0x016d, 0x016f, 0x016f, 0x0171, 0x0171, 0x0173, 0x0173, 0x0175, 0x0175, 0x0177, 0x0177, 0x017a,
                        0x017a, 0x017c, 0x017c, 0x017e, 0x0180, 0x0183, 0x0183, 0x0185, 0x0185, 0x0188, 0x0188, 0x018c, 0x018c, 0x0192, 0x0192, 0x0195, 0x0195, 0x0199, 0x019a, 0x019e, 0x019e, 0x01a1,
                        0x01a1, 0x01a3, 0x01a3, 0x01a5, 0x01a5, 0x01a8, 0x01a8, 0x01ad, 0x01ad, 0x01b0, 0x01b0, 0x01b4, 0x01b4, 0x01b6, 0x01b6, 0x01b9, 0x01b9, 0x01bd, 0x01bd, 0x01bf, 0x01bf, 0x01c4,
                        0x01c4, 0x01c6, 0x01c7, 0x01c9, 0x01ca, 0x01cc, 0x01cc, 0x01ce, 0x01ce, 0x01d0, 0x01d0, 0x01d2, 0x01d2, 0x01d4, 0x01d4, 0x01d6, 0x01d6, 0x01d8, 0x01d8, 0x01da, 0x01da, 0x01dc,
                        0x01dd, 0x01df, 0x01df, 0x01e1, 0x01e1, 0x01e3, 0x01e3, 0x01e5, 0x01e5, 0x01e7, 0x01e7, 0x01e9, 0x01e9, 0x01eb, 0x01eb, 0x01ed, 0x01ed, 0x01ef, 0x01f1, 0x01f3, 0x01f3, 0x01f5,
                        0x01f5, 0x01f9, 0x01f9, 0x01fb, 0x01fb, 0x01fd, 0x01fd, 0x01ff, 0x01ff, 0x0201, 0x0201, 0x0203, 0x0203, 0x0205, 0x0205, 0x0207, 0x0207, 0x0209, 0x0209, 0x020b, 0x020b, 0x020d,
                        0x020d, 0x020f, 0x020f, 0x0211, 0x0211, 0x0213, 0x0213, 0x0215, 0x0215, 0x0217, 0x0217, 0x0219, 0x0219, 0x021b, 0x021b, 0x021d, 0x021d, 0x021f, 0x021f, 0x0223, 0x0223, 0x0225,
                        0x0225, 0x0227, 0x0227, 0x0229, 0x0229, 0x022b, 0x022b, 0x022d, 0x022d, 0x022f, 0x022f, 0x0231, 0x0231, 0x0233, 0x0233, 0x023c, 0x023c, 0x023f, 0x0240, 0x0242, 0x0242, 0x0247,
                        0x0247, 0x0249, 0x0249, 0x024b, 0x024b, 0x024d, 0x024d, 0x024f, 0x0254, 0x0256, 0x0257, 0x0259, 0x0259, 0x025b, 0x025c, 0x0260, 0x0261, 0x0263, 0x0263, 0x0265, 0x0266, 0x0268,
                        0x026c, 0x026f, 0x026f, 0x0271, 0x0272, 0x0275, 0x0275, 0x027d, 0x027d, 0x0280, 0x0280, 0x0282, 0x0283, 0x0287, 0x028c, 0x0292, 0x0292, 0x029d, 0x029e, 0x0345, 0x0345, 0x0371,
                        0x0371, 0x0373, 0x0373, 0x0377, 0x0377, 0x037b, 0x037d, 0x0390, 0x0390, 0x03ac, 0x03ce, 0x03d0, 0x03d1, 0x03d5, 0x03d7, 0x03d9, 0x03d9, 0x03db, 0x03db, 0x03dd, 0x03dd, 0x03df,
                        0x03df, 0x03e1, 0x03e1, 0x03e3, 0x03e3, 0x03e5, 0x03e5, 0x03e7, 0x03e7, 0x03e9, 0x03e9, 0x03eb, 0x03eb, 0x03ed, 0x03ed, 0x03ef, 0x03f3, 0x03f5, 0x03f5, 0x03f8, 0x03f8, 0x03fb,
                        0x03fb, 0x0430, 0x045f, 0x0461, 0x0461, 0x0463, 0x0463, 0x0465, 0x0465, 0x0467, 0x0467, 0x0469, 0x0469, 0x046b, 0x046b, 0x046d, 0x046d, 0x046f, 0x046f, 0x0471, 0x0471, 0x0473,
                        0x0473, 0x0475, 0x0475, 0x0477, 0x0477, 0x0479, 0x0479, 0x047b, 0x047b, 0x047d, 0x047d, 0x047f, 0x047f, 0x0481, 0x0481, 0x048b, 0x048b, 0x048d, 0x048d, 0x048f, 0x048f, 0x0491,
                        0x0491, 0x0493, 0x0493, 0x0495, 0x0495, 0x0497, 0x0497, 0x0499, 0x0499, 0x049b, 0x049b, 0x049d, 0x049d, 0x049f, 0x049f, 0x04a1, 0x04a1, 0x04a3, 0x04a3, 0x04a5, 0x04a5, 0x04a7,
                        0x04a7, 0x04a9, 0x04a9, 0x04ab, 0x04ab, 0x04ad, 0x04ad, 0x04af, 0x04af, 0x04b1, 0x04b1, 0x04b3, 0x04b3, 0x04b5, 0x04b5, 0x04b7, 0x04b7, 0x04b9, 0x04b9, 0x04bb, 0x04bb, 0x04bd,
                        0x04bd, 0x04bf, 0x04bf, 0x04c2, 0x04c2, 0x04c4, 0x04c4, 0x04c6, 0x04c6, 0x04c8, 0x04c8, 0x04ca, 0x04ca, 0x04cc, 0x04cc, 0x04ce, 0x04cf, 0x04d1, 0x04d1, 0x04d3, 0x04d3, 0x04d5,
                        0x04d5, 0x04d7, 0x04d7, 0x04d9, 0x04d9, 0x04db, 0x04db, 0x04dd, 0x04dd, 0x04df, 0x04df, 0x04e1, 0x04e1, 0x04e3, 0x04e3, 0x04e5, 0x04e5, 0x04e7, 0x04e7, 0x04e9, 0x04e9, 0x04eb,
                        0x04eb, 0x04ed, 0x04ed, 0x04ef, 0x04ef, 0x04f1, 0x04f1, 0x04f3, 0x04f3, 0x04f5, 0x04f5, 0x04f7, 0x04f7, 0x04f9, 0x04f9, 0x04fb, 0x04fb, 0x04fd, 0x04fd, 0x04ff, 0x04ff, 0x0501,
                        0x0501, 0x0503, 0x0503, 0x0505, 0x0505, 0x0507, 0x0507, 0x0509, 0x0509, 0x050b, 0x050b, 0x050d, 0x050d, 0x050f, 0x050f, 0x0511, 0x0511, 0x0513, 0x0513, 0x0515, 0x0515, 0x0517,
                        0x0517, 0x0519, 0x0519, 0x051b, 0x051b, 0x051d, 0x051d, 0x051f, 0x051f, 0x0521, 0x0521, 0x0523, 0x0523, 0x0525, 0x0525, 0x0527, 0x0527, 0x0529, 0x0529, 0x052b, 0x052b, 0x052d,
                        0x052d, 0x052f, 0x052f, 0x0561, 0x0587, 0x13f8, 0x13fd, 0x1c80, 0x1c88, 0x1d79, 0x1d79, 0x1d7d, 0x1d7d, 0x1d8e, 0x1d8e, 0x1e01, 0x1e01, 0x1e03, 0x1e03, 0x1e05, 0x1e05, 0x1e07,
                        0x1e07, 0x1e09, 0x1e09, 0x1e0b, 0x1e0b, 0x1e0d, 0x1e0d, 0x1e0f, 0x1e0f, 0x1e11, 0x1e11, 0x1e13, 0x1e13, 0x1e15, 0x1e15, 0x1e17, 0x1e17, 0x1e19, 0x1e19, 0x1e1b, 0x1e1b, 0x1e1d,
                        0x1e1d, 0x1e1f, 0x1e1f, 0x1e21, 0x1e21, 0x1e23, 0x1e23, 0x1e25, 0x1e25, 0x1e27, 0x1e27, 0x1e29, 0x1e29, 0x1e2b, 0x1e2b, 0x1e2d, 0x1e2d, 0x1e2f, 0x1e2f, 0x1e31, 0x1e31, 0x1e33,
                        0x1e33, 0x1e35, 0x1e35, 0x1e37, 0x1e37, 0x1e39, 0x1e39, 0x1e3b, 0x1e3b, 0x1e3d, 0x1e3d, 0x1e3f, 0x1e3f, 0x1e41, 0x1e41, 0x1e43, 0x1e43, 0x1e45, 0x1e45, 0x1e47, 0x1e47, 0x1e49,
                        0x1e49, 0x1e4b, 0x1e4b, 0x1e4d, 0x1e4d, 0x1e4f, 0x1e4f, 0x1e51, 0x1e51, 0x1e53, 0x1e53, 0x1e55, 0x1e55, 0x1e57, 0x1e57, 0x1e59, 0x1e59, 0x1e5b, 0x1e5b, 0x1e5d, 0x1e5d, 0x1e5f,
                        0x1e5f, 0x1e61, 0x1e61, 0x1e63, 0x1e63, 0x1e65, 0x1e65, 0x1e67, 0x1e67, 0x1e69, 0x1e69, 0x1e6b, 0x1e6b, 0x1e6d, 0x1e6d, 0x1e6f, 0x1e6f, 0x1e71, 0x1e71, 0x1e73, 0x1e73, 0x1e75,
                        0x1e75, 0x1e77, 0x1e77, 0x1e79, 0x1e79, 0x1e7b, 0x1e7b, 0x1e7d, 0x1e7d, 0x1e7f, 0x1e7f, 0x1e81, 0x1e81, 0x1e83, 0x1e83, 0x1e85, 0x1e85, 0x1e87, 0x1e87, 0x1e89, 0x1e89, 0x1e8b,
                        0x1e8b, 0x1e8d, 0x1e8d, 0x1e8f, 0x1e8f, 0x1e91, 0x1e91, 0x1e93, 0x1e93, 0x1e95, 0x1e9b, 0x1ea1, 0x1ea1, 0x1ea3, 0x1ea3, 0x1ea5, 0x1ea5, 0x1ea7, 0x1ea7, 0x1ea9, 0x1ea9, 0x1eab,
                        0x1eab, 0x1ead, 0x1ead, 0x1eaf, 0x1eaf, 0x1eb1, 0x1eb1, 0x1eb3, 0x1eb3, 0x1eb5, 0x1eb5, 0x1eb7, 0x1eb7, 0x1eb9, 0x1eb9, 0x1ebb, 0x1ebb, 0x1ebd, 0x1ebd, 0x1ebf, 0x1ebf, 0x1ec1,
                        0x1ec1, 0x1ec3, 0x1ec3, 0x1ec5, 0x1ec5, 0x1ec7, 0x1ec7, 0x1ec9, 0x1ec9, 0x1ecb, 0x1ecb, 0x1ecd, 0x1ecd, 0x1ecf, 0x1ecf, 0x1ed1, 0x1ed1, 0x1ed3, 0x1ed3, 0x1ed5, 0x1ed5, 0x1ed7,
                        0x1ed7, 0x1ed9, 0x1ed9, 0x1edb, 0x1edb, 0x1edd, 0x1edd, 0x1edf, 0x1edf, 0x1ee1, 0x1ee1, 0x1ee3, 0x1ee3, 0x1ee5, 0x1ee5, 0x1ee7, 0x1ee7, 0x1ee9, 0x1ee9, 0x1eeb, 0x1eeb, 0x1eed,
                        0x1eed, 0x1eef, 0x1eef, 0x1ef1, 0x1ef1, 0x1ef3, 0x1ef3, 0x1ef5, 0x1ef5, 0x1ef7, 0x1ef7, 0x1ef9, 0x1ef9, 0x1efb, 0x1efb, 0x1efd, 0x1efd, 0x1eff, 0x1f07, 0x1f10, 0x1f15, 0x1f20,
                        0x1f27, 0x1f30, 0x1f37, 0x1f40, 0x1f45, 0x1f50, 0x1f57, 0x1f60, 0x1f67, 0x1f70, 0x1f7d, 0x1f80, 0x1f87, 0x1f90, 0x1f97, 0x1fa0, 0x1fa7, 0x1fb0, 0x1fb4, 0x1fb6, 0x1fb7, 0x1fbe,
                        0x1fbe, 0x1fc2, 0x1fc4, 0x1fc6, 0x1fc7, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fd7, 0x1fe0, 0x1fe7, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ff7, 0x214e, 0x214e, 0x2170, 0x217f, 0x2184, 0x2184, 0x24d0,
                        0x24e9, 0x2c30, 0x2c5e, 0x2c61, 0x2c61, 0x2c65, 0x2c66, 0x2c68, 0x2c68, 0x2c6a, 0x2c6a, 0x2c6c, 0x2c6c, 0x2c73, 0x2c73, 0x2c76, 0x2c76, 0x2c81, 0x2c81, 0x2c83, 0x2c83, 0x2c85,
                        0x2c85, 0x2c87, 0x2c87, 0x2c89, 0x2c89, 0x2c8b, 0x2c8b, 0x2c8d, 0x2c8d, 0x2c8f, 0x2c8f, 0x2c91, 0x2c91, 0x2c93, 0x2c93, 0x2c95, 0x2c95, 0x2c97, 0x2c97, 0x2c99, 0x2c99, 0x2c9b,
                        0x2c9b, 0x2c9d, 0x2c9d, 0x2c9f, 0x2c9f, 0x2ca1, 0x2ca1, 0x2ca3, 0x2ca3, 0x2ca5, 0x2ca5, 0x2ca7, 0x2ca7, 0x2ca9, 0x2ca9, 0x2cab, 0x2cab, 0x2cad, 0x2cad, 0x2caf, 0x2caf, 0x2cb1,
                        0x2cb1, 0x2cb3, 0x2cb3, 0x2cb5, 0x2cb5, 0x2cb7, 0x2cb7, 0x2cb9, 0x2cb9, 0x2cbb, 0x2cbb, 0x2cbd, 0x2cbd, 0x2cbf, 0x2cbf, 0x2cc1, 0x2cc1, 0x2cc3, 0x2cc3, 0x2cc5, 0x2cc5, 0x2cc7,
                        0x2cc7, 0x2cc9, 0x2cc9, 0x2ccb, 0x2ccb, 0x2ccd, 0x2ccd, 0x2ccf, 0x2ccf, 0x2cd1, 0x2cd1, 0x2cd3, 0x2cd3, 0x2cd5, 0x2cd5, 0x2cd7, 0x2cd7, 0x2cd9, 0x2cd9, 0x2cdb, 0x2cdb, 0x2cdd,
                        0x2cdd, 0x2cdf, 0x2cdf, 0x2ce1, 0x2ce1, 0x2ce3, 0x2ce3, 0x2cec, 0x2cec, 0x2cee, 0x2cee, 0x2cf3, 0x2cf3, 0x2d00, 0x2d25, 0x2d27, 0x2d27, 0x2d2d, 0x2d2d, 0xa641, 0xa641, 0xa643,
                        0xa643, 0xa645, 0xa645, 0xa647, 0xa647, 0xa649, 0xa649, 0xa64b, 0xa64b, 0xa64d, 0xa64d, 0xa64f, 0xa64f, 0xa651, 0xa651, 0xa653, 0xa653, 0xa655, 0xa655, 0xa657, 0xa657, 0xa659,
                        0xa659, 0xa65b, 0xa65b, 0xa65d, 0xa65d, 0xa65f, 0xa65f, 0xa661, 0xa661, 0xa663, 0xa663, 0xa665, 0xa665, 0xa667, 0xa667, 0xa669, 0xa669, 0xa66b, 0xa66b, 0xa66d, 0xa66d, 0xa681,
                        0xa681, 0xa683, 0xa683, 0xa685, 0xa685, 0xa687, 0xa687, 0xa689, 0xa689, 0xa68b, 0xa68b, 0xa68d, 0xa68d, 0xa68f, 0xa68f, 0xa691, 0xa691, 0xa693, 0xa693, 0xa695, 0xa695, 0xa697,
                        0xa697, 0xa699, 0xa699, 0xa69b, 0xa69b, 0xa723, 0xa723, 0xa725, 0xa725, 0xa727, 0xa727, 0xa729, 0xa729, 0xa72b, 0xa72b, 0xa72d, 0xa72d, 0xa72f, 0xa72f, 0xa733, 0xa733, 0xa735,
                        0xa735, 0xa737, 0xa737, 0xa739, 0xa739, 0xa73b, 0xa73b, 0xa73d, 0xa73d, 0xa73f, 0xa73f, 0xa741, 0xa741, 0xa743, 0xa743, 0xa745, 0xa745, 0xa747, 0xa747, 0xa749, 0xa749, 0xa74b,
                        0xa74b, 0xa74d, 0xa74d, 0xa74f, 0xa74f, 0xa751, 0xa751, 0xa753, 0xa753, 0xa755, 0xa755, 0xa757, 0xa757, 0xa759, 0xa759, 0xa75b, 0xa75b, 0xa75d, 0xa75d, 0xa75f, 0xa75f, 0xa761,
                        0xa761, 0xa763, 0xa763, 0xa765, 0xa765, 0xa767, 0xa767, 0xa769, 0xa769, 0xa76b, 0xa76b, 0xa76d, 0xa76d, 0xa76f, 0xa76f, 0xa77a, 0xa77a, 0xa77c, 0xa77c, 0xa77f, 0xa77f, 0xa781,
                        0xa781, 0xa783, 0xa783, 0xa785, 0xa785, 0xa787, 0xa787, 0xa78c, 0xa78c, 0xa791, 0xa791, 0xa793, 0xa794, 0xa797, 0xa797, 0xa799, 0xa799, 0xa79b, 0xa79b, 0xa79d, 0xa79d, 0xa79f,
                        0xa79f, 0xa7a1, 0xa7a1, 0xa7a3, 0xa7a3, 0xa7a5, 0xa7a5, 0xa7a7, 0xa7a7, 0xa7a9, 0xa7a9, 0xa7b5, 0xa7b5, 0xa7b7, 0xa7b7, 0xa7b9, 0xa7b9, 0xa7bb, 0xa7bb, 0xa7bd, 0xa7bd, 0xa7bf,
                        0xa7bf, 0xa7c3, 0xa7c3, 0xab53, 0xab53, 0xab70, 0xabbf, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xff41, 0xff5a, 0x10428, 0x1044f, 0x104d8, 0x104fb, 0x10cc0, 0x10cf2, 0x118c0, 0x118df,
                        0x16e60, 0x16e7f, 0x1e922, 0x1e943));
    }

    private static void populateCWU() {
        SET_ENCODINGS.put("CWU", CodePointSet.createNoDedup(0x0061, 0x007a, 0x00b5, 0x00b5, 0x00df, 0x00f6, 0x00f8, 0x00ff, 0x0101, 0x0101, 0x0103, 0x0103, 0x0105, 0x0105, 0x0107, 0x0107, 0x0109,
                        0x0109, 0x010b, 0x010b, 0x010d, 0x010d, 0x010f, 0x010f, 0x0111, 0x0111, 0x0113, 0x0113, 0x0115, 0x0115, 0x0117, 0x0117, 0x0119, 0x0119, 0x011b, 0x011b, 0x011d, 0x011d, 0x011f,
                        0x011f, 0x0121, 0x0121, 0x0123, 0x0123, 0x0125, 0x0125, 0x0127, 0x0127, 0x0129, 0x0129, 0x012b, 0x012b, 0x012d, 0x012d, 0x012f, 0x012f, 0x0131, 0x0131, 0x0133, 0x0133, 0x0135,
                        0x0135, 0x0137, 0x0137, 0x013a, 0x013a, 0x013c, 0x013c, 0x013e, 0x013e, 0x0140, 0x0140, 0x0142, 0x0142, 0x0144, 0x0144, 0x0146, 0x0146, 0x0148, 0x0149, 0x014b, 0x014b, 0x014d,
                        0x014d, 0x014f, 0x014f, 0x0151, 0x0151, 0x0153, 0x0153, 0x0155, 0x0155, 0x0157, 0x0157, 0x0159, 0x0159, 0x015b, 0x015b, 0x015d, 0x015d, 0x015f, 0x015f, 0x0161, 0x0161, 0x0163,
                        0x0163, 0x0165, 0x0165, 0x0167, 0x0167, 0x0169, 0x0169, 0x016b, 0x016b, 0x016d, 0x016d, 0x016f, 0x016f, 0x0171, 0x0171, 0x0173, 0x0173, 0x0175, 0x0175, 0x0177, 0x0177, 0x017a,
                        0x017a, 0x017c, 0x017c, 0x017e, 0x0180, 0x0183, 0x0183, 0x0185, 0x0185, 0x0188, 0x0188, 0x018c, 0x018c, 0x0192, 0x0192, 0x0195, 0x0195, 0x0199, 0x019a, 0x019e, 0x019e, 0x01a1,
                        0x01a1, 0x01a3, 0x01a3, 0x01a5, 0x01a5, 0x01a8, 0x01a8, 0x01ad, 0x01ad, 0x01b0, 0x01b0, 0x01b4, 0x01b4, 0x01b6, 0x01b6, 0x01b9, 0x01b9, 0x01bd, 0x01bd, 0x01bf, 0x01bf, 0x01c5,
                        0x01c6, 0x01c8, 0x01c9, 0x01cb, 0x01cc, 0x01ce, 0x01ce, 0x01d0, 0x01d0, 0x01d2, 0x01d2, 0x01d4, 0x01d4, 0x01d6, 0x01d6, 0x01d8, 0x01d8, 0x01da, 0x01da, 0x01dc, 0x01dd, 0x01df,
                        0x01df, 0x01e1, 0x01e1, 0x01e3, 0x01e3, 0x01e5, 0x01e5, 0x01e7, 0x01e7, 0x01e9, 0x01e9, 0x01eb, 0x01eb, 0x01ed, 0x01ed, 0x01ef, 0x01f0, 0x01f2, 0x01f3, 0x01f5, 0x01f5, 0x01f9,
                        0x01f9, 0x01fb, 0x01fb, 0x01fd, 0x01fd, 0x01ff, 0x01ff, 0x0201, 0x0201, 0x0203, 0x0203, 0x0205, 0x0205, 0x0207, 0x0207, 0x0209, 0x0209, 0x020b, 0x020b, 0x020d, 0x020d, 0x020f,
                        0x020f, 0x0211, 0x0211, 0x0213, 0x0213, 0x0215, 0x0215, 0x0217, 0x0217, 0x0219, 0x0219, 0x021b, 0x021b, 0x021d, 0x021d, 0x021f, 0x021f, 0x0223, 0x0223, 0x0225, 0x0225, 0x0227,
                        0x0227, 0x0229, 0x0229, 0x022b, 0x022b, 0x022d, 0x022d, 0x022f, 0x022f, 0x0231, 0x0231, 0x0233, 0x0233, 0x023c, 0x023c, 0x023f, 0x0240, 0x0242, 0x0242, 0x0247, 0x0247, 0x0249,
                        0x0249, 0x024b, 0x024b, 0x024d, 0x024d, 0x024f, 0x0254, 0x0256, 0x0257, 0x0259, 0x0259, 0x025b, 0x025c, 0x0260, 0x0261, 0x0263, 0x0263, 0x0265, 0x0266, 0x0268, 0x026c, 0x026f,
                        0x026f, 0x0271, 0x0272, 0x0275, 0x0275, 0x027d, 0x027d, 0x0280, 0x0280, 0x0282, 0x0283, 0x0287, 0x028c, 0x0292, 0x0292, 0x029d, 0x029e, 0x0345, 0x0345, 0x0371, 0x0371, 0x0373,
                        0x0373, 0x0377, 0x0377, 0x037b, 0x037d, 0x0390, 0x0390, 0x03ac, 0x03ce, 0x03d0, 0x03d1, 0x03d5, 0x03d7, 0x03d9, 0x03d9, 0x03db, 0x03db, 0x03dd, 0x03dd, 0x03df, 0x03df, 0x03e1,
                        0x03e1, 0x03e3, 0x03e3, 0x03e5, 0x03e5, 0x03e7, 0x03e7, 0x03e9, 0x03e9, 0x03eb, 0x03eb, 0x03ed, 0x03ed, 0x03ef, 0x03f3, 0x03f5, 0x03f5, 0x03f8, 0x03f8, 0x03fb, 0x03fb, 0x0430,
                        0x045f, 0x0461, 0x0461, 0x0463, 0x0463, 0x0465, 0x0465, 0x0467, 0x0467, 0x0469, 0x0469, 0x046b, 0x046b, 0x046d, 0x046d, 0x046f, 0x046f, 0x0471, 0x0471, 0x0473, 0x0473, 0x0475,
                        0x0475, 0x0477, 0x0477, 0x0479, 0x0479, 0x047b, 0x047b, 0x047d, 0x047d, 0x047f, 0x047f, 0x0481, 0x0481, 0x048b, 0x048b, 0x048d, 0x048d, 0x048f, 0x048f, 0x0491, 0x0491, 0x0493,
                        0x0493, 0x0495, 0x0495, 0x0497, 0x0497, 0x0499, 0x0499, 0x049b, 0x049b, 0x049d, 0x049d, 0x049f, 0x049f, 0x04a1, 0x04a1, 0x04a3, 0x04a3, 0x04a5, 0x04a5, 0x04a7, 0x04a7, 0x04a9,
                        0x04a9, 0x04ab, 0x04ab, 0x04ad, 0x04ad, 0x04af, 0x04af, 0x04b1, 0x04b1, 0x04b3, 0x04b3, 0x04b5, 0x04b5, 0x04b7, 0x04b7, 0x04b9, 0x04b9, 0x04bb, 0x04bb, 0x04bd, 0x04bd, 0x04bf,
                        0x04bf, 0x04c2, 0x04c2, 0x04c4, 0x04c4, 0x04c6, 0x04c6, 0x04c8, 0x04c8, 0x04ca, 0x04ca, 0x04cc, 0x04cc, 0x04ce, 0x04cf, 0x04d1, 0x04d1, 0x04d3, 0x04d3, 0x04d5, 0x04d5, 0x04d7,
                        0x04d7, 0x04d9, 0x04d9, 0x04db, 0x04db, 0x04dd, 0x04dd, 0x04df, 0x04df, 0x04e1, 0x04e1, 0x04e3, 0x04e3, 0x04e5, 0x04e5, 0x04e7, 0x04e7, 0x04e9, 0x04e9, 0x04eb, 0x04eb, 0x04ed,
                        0x04ed, 0x04ef, 0x04ef, 0x04f1, 0x04f1, 0x04f3, 0x04f3, 0x04f5, 0x04f5, 0x04f7, 0x04f7, 0x04f9, 0x04f9, 0x04fb, 0x04fb, 0x04fd, 0x04fd, 0x04ff, 0x04ff, 0x0501, 0x0501, 0x0503,
                        0x0503, 0x0505, 0x0505, 0x0507, 0x0507, 0x0509, 0x0509, 0x050b, 0x050b, 0x050d, 0x050d, 0x050f, 0x050f, 0x0511, 0x0511, 0x0513, 0x0513, 0x0515, 0x0515, 0x0517, 0x0517, 0x0519,
                        0x0519, 0x051b, 0x051b, 0x051d, 0x051d, 0x051f, 0x051f, 0x0521, 0x0521, 0x0523, 0x0523, 0x0525, 0x0525, 0x0527, 0x0527, 0x0529, 0x0529, 0x052b, 0x052b, 0x052d, 0x052d, 0x052f,
                        0x052f, 0x0561, 0x0587, 0x10d0, 0x10fa, 0x10fd, 0x10ff, 0x13f8, 0x13fd, 0x1c80, 0x1c88, 0x1d79, 0x1d79, 0x1d7d, 0x1d7d, 0x1d8e, 0x1d8e, 0x1e01, 0x1e01, 0x1e03, 0x1e03, 0x1e05,
                        0x1e05, 0x1e07, 0x1e07, 0x1e09, 0x1e09, 0x1e0b, 0x1e0b, 0x1e0d, 0x1e0d, 0x1e0f, 0x1e0f, 0x1e11, 0x1e11, 0x1e13, 0x1e13, 0x1e15, 0x1e15, 0x1e17, 0x1e17, 0x1e19, 0x1e19, 0x1e1b,
                        0x1e1b, 0x1e1d, 0x1e1d, 0x1e1f, 0x1e1f, 0x1e21, 0x1e21, 0x1e23, 0x1e23, 0x1e25, 0x1e25, 0x1e27, 0x1e27, 0x1e29, 0x1e29, 0x1e2b, 0x1e2b, 0x1e2d, 0x1e2d, 0x1e2f, 0x1e2f, 0x1e31,
                        0x1e31, 0x1e33, 0x1e33, 0x1e35, 0x1e35, 0x1e37, 0x1e37, 0x1e39, 0x1e39, 0x1e3b, 0x1e3b, 0x1e3d, 0x1e3d, 0x1e3f, 0x1e3f, 0x1e41, 0x1e41, 0x1e43, 0x1e43, 0x1e45, 0x1e45, 0x1e47,
                        0x1e47, 0x1e49, 0x1e49, 0x1e4b, 0x1e4b, 0x1e4d, 0x1e4d, 0x1e4f, 0x1e4f, 0x1e51, 0x1e51, 0x1e53, 0x1e53, 0x1e55, 0x1e55, 0x1e57, 0x1e57, 0x1e59, 0x1e59, 0x1e5b, 0x1e5b, 0x1e5d,
                        0x1e5d, 0x1e5f, 0x1e5f, 0x1e61, 0x1e61, 0x1e63, 0x1e63, 0x1e65, 0x1e65, 0x1e67, 0x1e67, 0x1e69, 0x1e69, 0x1e6b, 0x1e6b, 0x1e6d, 0x1e6d, 0x1e6f, 0x1e6f, 0x1e71, 0x1e71, 0x1e73,
                        0x1e73, 0x1e75, 0x1e75, 0x1e77, 0x1e77, 0x1e79, 0x1e79, 0x1e7b, 0x1e7b, 0x1e7d, 0x1e7d, 0x1e7f, 0x1e7f, 0x1e81, 0x1e81, 0x1e83, 0x1e83, 0x1e85, 0x1e85, 0x1e87, 0x1e87, 0x1e89,
                        0x1e89, 0x1e8b, 0x1e8b, 0x1e8d, 0x1e8d, 0x1e8f, 0x1e8f, 0x1e91, 0x1e91, 0x1e93, 0x1e93, 0x1e95, 0x1e9b, 0x1ea1, 0x1ea1, 0x1ea3, 0x1ea3, 0x1ea5, 0x1ea5, 0x1ea7, 0x1ea7, 0x1ea9,
                        0x1ea9, 0x1eab, 0x1eab, 0x1ead, 0x1ead, 0x1eaf, 0x1eaf, 0x1eb1, 0x1eb1, 0x1eb3, 0x1eb3, 0x1eb5, 0x1eb5, 0x1eb7, 0x1eb7, 0x1eb9, 0x1eb9, 0x1ebb, 0x1ebb, 0x1ebd, 0x1ebd, 0x1ebf,
                        0x1ebf, 0x1ec1, 0x1ec1, 0x1ec3, 0x1ec3, 0x1ec5, 0x1ec5, 0x1ec7, 0x1ec7, 0x1ec9, 0x1ec9, 0x1ecb, 0x1ecb, 0x1ecd, 0x1ecd, 0x1ecf, 0x1ecf, 0x1ed1, 0x1ed1, 0x1ed3, 0x1ed3, 0x1ed5,
                        0x1ed5, 0x1ed7, 0x1ed7, 0x1ed9, 0x1ed9, 0x1edb, 0x1edb, 0x1edd, 0x1edd, 0x1edf, 0x1edf, 0x1ee1, 0x1ee1, 0x1ee3, 0x1ee3, 0x1ee5, 0x1ee5, 0x1ee7, 0x1ee7, 0x1ee9, 0x1ee9, 0x1eeb,
                        0x1eeb, 0x1eed, 0x1eed, 0x1eef, 0x1eef, 0x1ef1, 0x1ef1, 0x1ef3, 0x1ef3, 0x1ef5, 0x1ef5, 0x1ef7, 0x1ef7, 0x1ef9, 0x1ef9, 0x1efb, 0x1efb, 0x1efd, 0x1efd, 0x1eff, 0x1f07, 0x1f10,
                        0x1f15, 0x1f20, 0x1f27, 0x1f30, 0x1f37, 0x1f40, 0x1f45, 0x1f50, 0x1f57, 0x1f60, 0x1f67, 0x1f70, 0x1f7d, 0x1f80, 0x1fb4, 0x1fb6, 0x1fb7, 0x1fbc, 0x1fbc, 0x1fbe, 0x1fbe, 0x1fc2,
                        0x1fc4, 0x1fc6, 0x1fc7, 0x1fcc, 0x1fcc, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fd7, 0x1fe0, 0x1fe7, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ff7, 0x1ffc, 0x1ffc, 0x214e, 0x214e, 0x2170, 0x217f, 0x2184,
                        0x2184, 0x24d0, 0x24e9, 0x2c30, 0x2c5e, 0x2c61, 0x2c61, 0x2c65, 0x2c66, 0x2c68, 0x2c68, 0x2c6a, 0x2c6a, 0x2c6c, 0x2c6c, 0x2c73, 0x2c73, 0x2c76, 0x2c76, 0x2c81, 0x2c81, 0x2c83,
                        0x2c83, 0x2c85, 0x2c85, 0x2c87, 0x2c87, 0x2c89, 0x2c89, 0x2c8b, 0x2c8b, 0x2c8d, 0x2c8d, 0x2c8f, 0x2c8f, 0x2c91, 0x2c91, 0x2c93, 0x2c93, 0x2c95, 0x2c95, 0x2c97, 0x2c97, 0x2c99,
                        0x2c99, 0x2c9b, 0x2c9b, 0x2c9d, 0x2c9d, 0x2c9f, 0x2c9f, 0x2ca1, 0x2ca1, 0x2ca3, 0x2ca3, 0x2ca5, 0x2ca5, 0x2ca7, 0x2ca7, 0x2ca9, 0x2ca9, 0x2cab, 0x2cab, 0x2cad, 0x2cad, 0x2caf,
                        0x2caf, 0x2cb1, 0x2cb1, 0x2cb3, 0x2cb3, 0x2cb5, 0x2cb5, 0x2cb7, 0x2cb7, 0x2cb9, 0x2cb9, 0x2cbb, 0x2cbb, 0x2cbd, 0x2cbd, 0x2cbf, 0x2cbf, 0x2cc1, 0x2cc1, 0x2cc3, 0x2cc3, 0x2cc5,
                        0x2cc5, 0x2cc7, 0x2cc7, 0x2cc9, 0x2cc9, 0x2ccb, 0x2ccb, 0x2ccd, 0x2ccd, 0x2ccf, 0x2ccf, 0x2cd1, 0x2cd1, 0x2cd3, 0x2cd3, 0x2cd5, 0x2cd5, 0x2cd7, 0x2cd7, 0x2cd9, 0x2cd9, 0x2cdb,
                        0x2cdb, 0x2cdd, 0x2cdd, 0x2cdf, 0x2cdf, 0x2ce1, 0x2ce1, 0x2ce3, 0x2ce3, 0x2cec, 0x2cec, 0x2cee, 0x2cee, 0x2cf3, 0x2cf3, 0x2d00, 0x2d25, 0x2d27, 0x2d27, 0x2d2d, 0x2d2d, 0xa641,
                        0xa641, 0xa643, 0xa643, 0xa645, 0xa645, 0xa647, 0xa647, 0xa649, 0xa649, 0xa64b, 0xa64b, 0xa64d, 0xa64d, 0xa64f, 0xa64f, 0xa651, 0xa651, 0xa653, 0xa653, 0xa655, 0xa655, 0xa657,
                        0xa657, 0xa659, 0xa659, 0xa65b, 0xa65b, 0xa65d, 0xa65d, 0xa65f, 0xa65f, 0xa661, 0xa661, 0xa663, 0xa663, 0xa665, 0xa665, 0xa667, 0xa667, 0xa669, 0xa669, 0xa66b, 0xa66b, 0xa66d,
                        0xa66d, 0xa681, 0xa681, 0xa683, 0xa683, 0xa685, 0xa685, 0xa687, 0xa687, 0xa689, 0xa689, 0xa68b, 0xa68b, 0xa68d, 0xa68d, 0xa68f, 0xa68f, 0xa691, 0xa691, 0xa693, 0xa693, 0xa695,
                        0xa695, 0xa697, 0xa697, 0xa699, 0xa699, 0xa69b, 0xa69b, 0xa723, 0xa723, 0xa725, 0xa725, 0xa727, 0xa727, 0xa729, 0xa729, 0xa72b, 0xa72b, 0xa72d, 0xa72d, 0xa72f, 0xa72f, 0xa733,
                        0xa733, 0xa735, 0xa735, 0xa737, 0xa737, 0xa739, 0xa739, 0xa73b, 0xa73b, 0xa73d, 0xa73d, 0xa73f, 0xa73f, 0xa741, 0xa741, 0xa743, 0xa743, 0xa745, 0xa745, 0xa747, 0xa747, 0xa749,
                        0xa749, 0xa74b, 0xa74b, 0xa74d, 0xa74d, 0xa74f, 0xa74f, 0xa751, 0xa751, 0xa753, 0xa753, 0xa755, 0xa755, 0xa757, 0xa757, 0xa759, 0xa759, 0xa75b, 0xa75b, 0xa75d, 0xa75d, 0xa75f,
                        0xa75f, 0xa761, 0xa761, 0xa763, 0xa763, 0xa765, 0xa765, 0xa767, 0xa767, 0xa769, 0xa769, 0xa76b, 0xa76b, 0xa76d, 0xa76d, 0xa76f, 0xa76f, 0xa77a, 0xa77a, 0xa77c, 0xa77c, 0xa77f,
                        0xa77f, 0xa781, 0xa781, 0xa783, 0xa783, 0xa785, 0xa785, 0xa787, 0xa787, 0xa78c, 0xa78c, 0xa791, 0xa791, 0xa793, 0xa794, 0xa797, 0xa797, 0xa799, 0xa799, 0xa79b, 0xa79b, 0xa79d,
                        0xa79d, 0xa79f, 0xa79f, 0xa7a1, 0xa7a1, 0xa7a3, 0xa7a3, 0xa7a5, 0xa7a5, 0xa7a7, 0xa7a7, 0xa7a9, 0xa7a9, 0xa7b5, 0xa7b5, 0xa7b7, 0xa7b7, 0xa7b9, 0xa7b9, 0xa7bb, 0xa7bb, 0xa7bd,
                        0xa7bd, 0xa7bf, 0xa7bf, 0xa7c3, 0xa7c3, 0xab53, 0xab53, 0xab70, 0xabbf, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xff41, 0xff5a, 0x10428, 0x1044f, 0x104d8, 0x104fb, 0x10cc0, 0x10cf2,
                        0x118c0, 0x118df, 0x16e60, 0x16e7f, 0x1e922, 0x1e943));
    }

    private static void populateCASED() {
        SET_ENCODINGS.put("Cased", CodePointSet.createNoDedup(0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, 0x00b5, 0x00b5, 0x00ba, 0x00ba, 0x00c0, 0x00d6, 0x00d8, 0x00f6, 0x00f8, 0x01ba, 0x01bc,
                        0x01bf, 0x01c4, 0x0293, 0x0295, 0x02b8, 0x02c0, 0x02c1, 0x02e0, 0x02e4, 0x0345, 0x0345, 0x0370, 0x0373, 0x0376, 0x0377, 0x037a, 0x037d, 0x037f, 0x037f, 0x0386, 0x0386, 0x0388,
                        0x038a, 0x038c, 0x038c, 0x038e, 0x03a1, 0x03a3, 0x03f5, 0x03f7, 0x0481, 0x048a, 0x052f, 0x0531, 0x0556, 0x0560, 0x0588, 0x10a0, 0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x10d0,
                        0x10fa, 0x10fd, 0x10ff, 0x13a0, 0x13f5, 0x13f8, 0x13fd, 0x1c80, 0x1c88, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1d00, 0x1dbf, 0x1e00, 0x1f15, 0x1f18, 0x1f1d, 0x1f20, 0x1f45, 0x1f48,
                        0x1f4d, 0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f7d, 0x1f80, 0x1fb4, 0x1fb6, 0x1fbc, 0x1fbe, 0x1fbe, 0x1fc2, 0x1fc4, 0x1fc6, 0x1fcc, 0x1fd0,
                        0x1fd3, 0x1fd6, 0x1fdb, 0x1fe0, 0x1fec, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffc, 0x2071, 0x2071, 0x207f, 0x207f, 0x2090, 0x209c, 0x2102, 0x2102, 0x2107, 0x2107, 0x210a, 0x2113, 0x2115,
                        0x2115, 0x2119, 0x211d, 0x2124, 0x2124, 0x2126, 0x2126, 0x2128, 0x2128, 0x212a, 0x212d, 0x212f, 0x2134, 0x2139, 0x2139, 0x213c, 0x213f, 0x2145, 0x2149, 0x214e, 0x214e, 0x2160,
                        0x217f, 0x2183, 0x2184, 0x24b6, 0x24e9, 0x2c00, 0x2c2e, 0x2c30, 0x2c5e, 0x2c60, 0x2ce4, 0x2ceb, 0x2cee, 0x2cf2, 0x2cf3, 0x2d00, 0x2d25, 0x2d27, 0x2d27, 0x2d2d, 0x2d2d, 0xa640,
                        0xa66d, 0xa680, 0xa69d, 0xa722, 0xa787, 0xa78b, 0xa78e, 0xa790, 0xa7bf, 0xa7c2, 0xa7c6, 0xa7f8, 0xa7fa, 0xab30, 0xab5a, 0xab5c, 0xab67, 0xab70, 0xabbf, 0xfb00, 0xfb06, 0xfb13,
                        0xfb17, 0xff21, 0xff3a, 0xff41, 0xff5a, 0x10400, 0x1044f, 0x104b0, 0x104d3, 0x104d8, 0x104fb, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x118a0, 0x118df, 0x16e40, 0x16e7f, 0x1d400,
                        0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c3, 0x1d4c5, 0x1d505,
                        0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c, 0x1d51e, 0x1d539, 0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d552, 0x1d6a5, 0x1d6a8,
                        0x1d6c0, 0x1d6c2, 0x1d6da, 0x1d6dc, 0x1d6fa, 0x1d6fc, 0x1d714, 0x1d716, 0x1d734, 0x1d736, 0x1d74e, 0x1d750, 0x1d76e, 0x1d770, 0x1d788, 0x1d78a, 0x1d7a8, 0x1d7aa, 0x1d7c2,
                        0x1d7c4, 0x1d7cb, 0x1e900, 0x1e943, 0x1f130, 0x1f149, 0x1f150, 0x1f169, 0x1f170, 0x1f189));
    }

    private static void populateDI() {
        SET_ENCODINGS.put("DI", CodePointSet.createNoDedup(0x00ad, 0x00ad, 0x034f, 0x034f, 0x061c, 0x061c, 0x115f, 0x1160, 0x17b4, 0x17b5, 0x180b, 0x180e, 0x200b, 0x200f, 0x202a, 0x202e, 0x2060,
                        0x206f, 0x3164, 0x3164, 0xfe00, 0xfe0f, 0xfeff, 0xfeff, 0xffa0, 0xffa0, 0xfff0, 0xfff8, 0x1bca0, 0x1bca3, 0x1d173, 0x1d17a, 0xe0000, 0xe0fff));
    }

    private static void populateDASH() {
        SET_ENCODINGS.put("Dash",
                        CodePointSet.createNoDedup(0x002d, 0x002d, 0x058a, 0x058a, 0x05be, 0x05be, 0x1400, 0x1400, 0x1806, 0x1806, 0x2010, 0x2015, 0x2053, 0x2053, 0x207b, 0x207b, 0x208b, 0x208b,
                                        0x2212, 0x2212, 0x2e17, 0x2e17, 0x2e1a, 0x2e1a, 0x2e3a, 0x2e3b, 0x2e40, 0x2e40, 0x301c, 0x301c, 0x3030, 0x3030, 0x30a0, 0x30a0, 0xfe31, 0xfe32, 0xfe58, 0xfe58,
                                        0xfe63, 0xfe63, 0xff0d, 0xff0d));
    }

    private static void populateDEP() {
        SET_ENCODINGS.put("Dep", CodePointSet.createNoDedup(0x0149, 0x0149, 0x0673, 0x0673, 0x0f77, 0x0f77, 0x0f79, 0x0f79, 0x17a3, 0x17a4, 0x206a, 0x206f, 0x2329, 0x232a, 0xe0001, 0xe0001));
    }

    private static void populateDIA() {
        SET_ENCODINGS.put("Dia", CodePointSet.createNoDedup(0x005e, 0x005e, 0x0060, 0x0060, 0x00a8, 0x00a8, 0x00af, 0x00af, 0x00b4, 0x00b4, 0x00b7, 0x00b8, 0x02b0, 0x034e, 0x0350, 0x0357, 0x035d,
                        0x0362, 0x0374, 0x0375, 0x037a, 0x037a, 0x0384, 0x0385, 0x0483, 0x0487, 0x0559, 0x0559, 0x0591, 0x05a1, 0x05a3, 0x05bd, 0x05bf, 0x05bf, 0x05c1, 0x05c2, 0x05c4, 0x05c4, 0x064b,
                        0x0652, 0x0657, 0x0658, 0x06df, 0x06e0, 0x06e5, 0x06e6, 0x06ea, 0x06ec, 0x0730, 0x074a, 0x07a6, 0x07b0, 0x07eb, 0x07f5, 0x0818, 0x0819, 0x08e3, 0x08fe, 0x093c, 0x093c, 0x094d,
                        0x094d, 0x0951, 0x0954, 0x0971, 0x0971, 0x09bc, 0x09bc, 0x09cd, 0x09cd, 0x0a3c, 0x0a3c, 0x0a4d, 0x0a4d, 0x0abc, 0x0abc, 0x0acd, 0x0acd, 0x0afd, 0x0aff, 0x0b3c, 0x0b3c, 0x0b4d,
                        0x0b4d, 0x0bcd, 0x0bcd, 0x0c4d, 0x0c4d, 0x0cbc, 0x0cbc, 0x0ccd, 0x0ccd, 0x0d3b, 0x0d3c, 0x0d4d, 0x0d4d, 0x0dca, 0x0dca, 0x0e47, 0x0e4c, 0x0e4e, 0x0e4e, 0x0eba, 0x0eba, 0x0ec8,
                        0x0ecc, 0x0f18, 0x0f19, 0x0f35, 0x0f35, 0x0f37, 0x0f37, 0x0f39, 0x0f39, 0x0f3e, 0x0f3f, 0x0f82, 0x0f84, 0x0f86, 0x0f87, 0x0fc6, 0x0fc6, 0x1037, 0x1037, 0x1039, 0x103a, 0x1063,
                        0x1064, 0x1069, 0x106d, 0x1087, 0x108d, 0x108f, 0x108f, 0x109a, 0x109b, 0x135d, 0x135f, 0x17c9, 0x17d3, 0x17dd, 0x17dd, 0x1939, 0x193b, 0x1a75, 0x1a7c, 0x1a7f, 0x1a7f, 0x1ab0,
                        0x1abd, 0x1b34, 0x1b34, 0x1b44, 0x1b44, 0x1b6b, 0x1b73, 0x1baa, 0x1bab, 0x1c36, 0x1c37, 0x1c78, 0x1c7d, 0x1cd0, 0x1ce8, 0x1ced, 0x1ced, 0x1cf4, 0x1cf4, 0x1cf7, 0x1cf9, 0x1d2c,
                        0x1d6a, 0x1dc4, 0x1dcf, 0x1df5, 0x1df9, 0x1dfd, 0x1dff, 0x1fbd, 0x1fbd, 0x1fbf, 0x1fc1, 0x1fcd, 0x1fcf, 0x1fdd, 0x1fdf, 0x1fed, 0x1fef, 0x1ffd, 0x1ffe, 0x2cef, 0x2cf1, 0x2e2f,
                        0x2e2f, 0x302a, 0x302f, 0x3099, 0x309c, 0x30fc, 0x30fc, 0xa66f, 0xa66f, 0xa67c, 0xa67d, 0xa67f, 0xa67f, 0xa69c, 0xa69d, 0xa6f0, 0xa6f1, 0xa700, 0xa721, 0xa788, 0xa78a, 0xa7f8,
                        0xa7f9, 0xa8c4, 0xa8c4, 0xa8e0, 0xa8f1, 0xa92b, 0xa92e, 0xa953, 0xa953, 0xa9b3, 0xa9b3, 0xa9c0, 0xa9c0, 0xa9e5, 0xa9e5, 0xaa7b, 0xaa7d, 0xaabf, 0xaac2, 0xaaf6, 0xaaf6, 0xab5b,
                        0xab5f, 0xabec, 0xabed, 0xfb1e, 0xfb1e, 0xfe20, 0xfe2f, 0xff3e, 0xff3e, 0xff40, 0xff40, 0xff70, 0xff70, 0xff9e, 0xff9f, 0xffe3, 0xffe3, 0x102e0, 0x102e0, 0x10ae5, 0x10ae6,
                        0x10d22, 0x10d27, 0x10f46, 0x10f50, 0x110b9, 0x110ba, 0x11133, 0x11134, 0x11173, 0x11173, 0x111c0, 0x111c0, 0x111ca, 0x111cc, 0x11235, 0x11236, 0x112e9, 0x112ea, 0x1133c,
                        0x1133c, 0x1134d, 0x1134d, 0x11366, 0x1136c, 0x11370, 0x11374, 0x11442, 0x11442, 0x11446, 0x11446, 0x114c2, 0x114c3, 0x115bf, 0x115c0, 0x1163f, 0x1163f, 0x116b6, 0x116b7,
                        0x1172b, 0x1172b, 0x11839, 0x1183a, 0x119e0, 0x119e0, 0x11a34, 0x11a34, 0x11a47, 0x11a47, 0x11a99, 0x11a99, 0x11c3f, 0x11c3f, 0x11d42, 0x11d42, 0x11d44, 0x11d45, 0x11d97,
                        0x11d97, 0x16af0, 0x16af4, 0x16b30, 0x16b36, 0x16f8f, 0x16f9f, 0x1d167, 0x1d169, 0x1d16d, 0x1d172, 0x1d17b, 0x1d182, 0x1d185, 0x1d18b, 0x1d1aa, 0x1d1ad, 0x1e130, 0x1e136,
                        0x1e2ec, 0x1e2ef, 0x1e8d0, 0x1e8d6, 0x1e944, 0x1e946, 0x1e948, 0x1e94a));
    }

    private static void populateEMOJI() {
        SET_ENCODINGS.put("Emoji", CodePointSet.createNoDedup(0x0023, 0x0023, 0x002a, 0x002a, 0x0030, 0x0039, 0x00a9, 0x00a9, 0x00ae, 0x00ae, 0x203c, 0x203c, 0x2049, 0x2049, 0x2122, 0x2122, 0x2139,
                        0x2139, 0x2194, 0x2199, 0x21a9, 0x21aa, 0x231a, 0x231b, 0x2328, 0x2328, 0x23cf, 0x23cf, 0x23e9, 0x23f3, 0x23f8, 0x23fa, 0x24c2, 0x24c2, 0x25aa, 0x25ab, 0x25b6, 0x25b6, 0x25c0,
                        0x25c0, 0x25fb, 0x25fe, 0x2600, 0x2604, 0x260e, 0x260e, 0x2611, 0x2611, 0x2614, 0x2615, 0x2618, 0x2618, 0x261d, 0x261d, 0x2620, 0x2620, 0x2622, 0x2623, 0x2626, 0x2626, 0x262a,
                        0x262a, 0x262e, 0x262f, 0x2638, 0x263a, 0x2640, 0x2640, 0x2642, 0x2642, 0x2648, 0x2653, 0x265f, 0x2660, 0x2663, 0x2663, 0x2665, 0x2666, 0x2668, 0x2668, 0x267b, 0x267b, 0x267e,
                        0x267f, 0x2692, 0x2697, 0x2699, 0x2699, 0x269b, 0x269c, 0x26a0, 0x26a1, 0x26aa, 0x26ab, 0x26b0, 0x26b1, 0x26bd, 0x26be, 0x26c4, 0x26c5, 0x26c8, 0x26c8, 0x26ce, 0x26cf, 0x26d1,
                        0x26d1, 0x26d3, 0x26d4, 0x26e9, 0x26ea, 0x26f0, 0x26f5, 0x26f7, 0x26fa, 0x26fd, 0x26fd, 0x2702, 0x2702, 0x2705, 0x2705, 0x2708, 0x270d, 0x270f, 0x270f, 0x2712, 0x2712, 0x2714,
                        0x2714, 0x2716, 0x2716, 0x271d, 0x271d, 0x2721, 0x2721, 0x2728, 0x2728, 0x2733, 0x2734, 0x2744, 0x2744, 0x2747, 0x2747, 0x274c, 0x274c, 0x274e, 0x274e, 0x2753, 0x2755, 0x2757,
                        0x2757, 0x2763, 0x2764, 0x2795, 0x2797, 0x27a1, 0x27a1, 0x27b0, 0x27b0, 0x27bf, 0x27bf, 0x2934, 0x2935, 0x2b05, 0x2b07, 0x2b1b, 0x2b1c, 0x2b50, 0x2b50, 0x2b55, 0x2b55, 0x3030,
                        0x3030, 0x303d, 0x303d, 0x3297, 0x3297, 0x3299, 0x3299, 0x1f004, 0x1f004, 0x1f0cf, 0x1f0cf, 0x1f170, 0x1f171, 0x1f17e, 0x1f17f, 0x1f18e, 0x1f18e, 0x1f191, 0x1f19a, 0x1f1e6,
                        0x1f1ff, 0x1f201, 0x1f202, 0x1f21a, 0x1f21a, 0x1f22f, 0x1f22f, 0x1f232, 0x1f23a, 0x1f250, 0x1f251, 0x1f300, 0x1f321, 0x1f324, 0x1f393, 0x1f396, 0x1f397, 0x1f399, 0x1f39b,
                        0x1f39e, 0x1f3f0, 0x1f3f3, 0x1f3f5, 0x1f3f7, 0x1f4fd, 0x1f4ff, 0x1f53d, 0x1f549, 0x1f54e, 0x1f550, 0x1f567, 0x1f56f, 0x1f570, 0x1f573, 0x1f57a, 0x1f587, 0x1f587, 0x1f58a,
                        0x1f58d, 0x1f590, 0x1f590, 0x1f595, 0x1f596, 0x1f5a4, 0x1f5a5, 0x1f5a8, 0x1f5a8, 0x1f5b1, 0x1f5b2, 0x1f5bc, 0x1f5bc, 0x1f5c2, 0x1f5c4, 0x1f5d1, 0x1f5d3, 0x1f5dc, 0x1f5de,
                        0x1f5e1, 0x1f5e1, 0x1f5e3, 0x1f5e3, 0x1f5e8, 0x1f5e8, 0x1f5ef, 0x1f5ef, 0x1f5f3, 0x1f5f3, 0x1f5fa, 0x1f64f, 0x1f680, 0x1f6c5, 0x1f6cb, 0x1f6d2, 0x1f6d5, 0x1f6d5, 0x1f6e0,
                        0x1f6e5, 0x1f6e9, 0x1f6e9, 0x1f6eb, 0x1f6ec, 0x1f6f0, 0x1f6f0, 0x1f6f3, 0x1f6fa, 0x1f7e0, 0x1f7eb, 0x1f90d, 0x1f93a, 0x1f93c, 0x1f945, 0x1f947, 0x1f971, 0x1f973, 0x1f976,
                        0x1f97a, 0x1f9a2, 0x1f9a5, 0x1f9aa, 0x1f9ae, 0x1f9ca, 0x1f9cd, 0x1f9ff, 0x1fa70, 0x1fa73, 0x1fa78, 0x1fa7a, 0x1fa80, 0x1fa82, 0x1fa90, 0x1fa95));
    }

    private static void populateEMOJI_COMPONENT() {
        SET_ENCODINGS.put("Emoji_Component", CodePointSet.createNoDedup(0x0023, 0x0023, 0x002a, 0x002a, 0x0030, 0x0039, 0x200d, 0x200d, 0x20e3, 0x20e3, 0xfe0f, 0xfe0f, 0x1f1e6, 0x1f1ff, 0x1f3fb,
                        0x1f3ff, 0x1f9b0, 0x1f9b3, 0xe0020, 0xe007f));
    }

    private static void populateEMOJI_MODIFIER() {
        SET_ENCODINGS.put("Emoji_Modifier", CodePointSet.createNoDedup(0x1f3fb, 0x1f3ff));
    }

    private static void populateEMOJI_MODIFIER_BASE() {
        SET_ENCODINGS.put("Emoji_Modifier_Base",
                        CodePointSet.createNoDedup(0x261d, 0x261d, 0x26f9, 0x26f9, 0x270a, 0x270d, 0x1f385, 0x1f385, 0x1f3c2, 0x1f3c4, 0x1f3c7, 0x1f3c7, 0x1f3ca, 0x1f3cc, 0x1f442, 0x1f443, 0x1f446,
                                        0x1f450, 0x1f466, 0x1f478, 0x1f47c, 0x1f47c, 0x1f481, 0x1f483, 0x1f485, 0x1f487, 0x1f48f, 0x1f48f, 0x1f491, 0x1f491, 0x1f4aa, 0x1f4aa, 0x1f574, 0x1f575,
                                        0x1f57a, 0x1f57a, 0x1f590, 0x1f590, 0x1f595, 0x1f596, 0x1f645, 0x1f647, 0x1f64b, 0x1f64f, 0x1f6a3, 0x1f6a3, 0x1f6b4, 0x1f6b6, 0x1f6c0, 0x1f6c0, 0x1f6cc,
                                        0x1f6cc, 0x1f90f, 0x1f90f, 0x1f918, 0x1f91f, 0x1f926, 0x1f926, 0x1f930, 0x1f939, 0x1f93c, 0x1f93e, 0x1f9b5, 0x1f9b6, 0x1f9b8, 0x1f9b9, 0x1f9bb, 0x1f9bb,
                                        0x1f9cd, 0x1f9cf, 0x1f9d1, 0x1f9dd));
    }

    private static void populateEMOJI_PRESENTATION() {
        SET_ENCODINGS.put("Emoji_Presentation", CodePointSet.createNoDedup(0x231a, 0x231b, 0x23e9, 0x23ec, 0x23f0, 0x23f0, 0x23f3, 0x23f3, 0x25fd, 0x25fe, 0x2614, 0x2615, 0x2648, 0x2653, 0x267f,
                        0x267f, 0x2693, 0x2693, 0x26a1, 0x26a1, 0x26aa, 0x26ab, 0x26bd, 0x26be, 0x26c4, 0x26c5, 0x26ce, 0x26ce, 0x26d4, 0x26d4, 0x26ea, 0x26ea, 0x26f2, 0x26f3, 0x26f5, 0x26f5, 0x26fa,
                        0x26fa, 0x26fd, 0x26fd, 0x2705, 0x2705, 0x270a, 0x270b, 0x2728, 0x2728, 0x274c, 0x274c, 0x274e, 0x274e, 0x2753, 0x2755, 0x2757, 0x2757, 0x2795, 0x2797, 0x27b0, 0x27b0, 0x27bf,
                        0x27bf, 0x2b1b, 0x2b1c, 0x2b50, 0x2b50, 0x2b55, 0x2b55, 0x1f004, 0x1f004, 0x1f0cf, 0x1f0cf, 0x1f18e, 0x1f18e, 0x1f191, 0x1f19a, 0x1f1e6, 0x1f1ff, 0x1f201, 0x1f201, 0x1f21a,
                        0x1f21a, 0x1f22f, 0x1f22f, 0x1f232, 0x1f236, 0x1f238, 0x1f23a, 0x1f250, 0x1f251, 0x1f300, 0x1f320, 0x1f32d, 0x1f335, 0x1f337, 0x1f37c, 0x1f37e, 0x1f393, 0x1f3a0, 0x1f3ca,
                        0x1f3cf, 0x1f3d3, 0x1f3e0, 0x1f3f0, 0x1f3f4, 0x1f3f4, 0x1f3f8, 0x1f43e, 0x1f440, 0x1f440, 0x1f442, 0x1f4fc, 0x1f4ff, 0x1f53d, 0x1f54b, 0x1f54e, 0x1f550, 0x1f567, 0x1f57a,
                        0x1f57a, 0x1f595, 0x1f596, 0x1f5a4, 0x1f5a4, 0x1f5fb, 0x1f64f, 0x1f680, 0x1f6c5, 0x1f6cc, 0x1f6cc, 0x1f6d0, 0x1f6d2, 0x1f6d5, 0x1f6d5, 0x1f6eb, 0x1f6ec, 0x1f6f4, 0x1f6fa,
                        0x1f7e0, 0x1f7eb, 0x1f90d, 0x1f93a, 0x1f93c, 0x1f945, 0x1f947, 0x1f971, 0x1f973, 0x1f976, 0x1f97a, 0x1f9a2, 0x1f9a5, 0x1f9aa, 0x1f9ae, 0x1f9ca, 0x1f9cd, 0x1f9ff, 0x1fa70,
                        0x1fa73, 0x1fa78, 0x1fa7a, 0x1fa80, 0x1fa82, 0x1fa90, 0x1fa95));
    }

    private static void populateEXT() {
        SET_ENCODINGS.put("Ext",
                        CodePointSet.createNoDedup(0x00b7, 0x00b7, 0x02d0, 0x02d1, 0x0640, 0x0640, 0x07fa, 0x07fa, 0x0e46, 0x0e46, 0x0ec6, 0x0ec6, 0x180a, 0x180a, 0x1843, 0x1843, 0x1aa7, 0x1aa7,
                                        0x1c36, 0x1c36, 0x1c7b, 0x1c7b, 0x3005, 0x3005, 0x3031, 0x3035, 0x309d, 0x309e, 0x30fc, 0x30fe, 0xa015, 0xa015, 0xa60c, 0xa60c, 0xa9cf, 0xa9cf, 0xa9e6, 0xa9e6,
                                        0xaa70, 0xaa70, 0xaadd, 0xaadd, 0xaaf3, 0xaaf4, 0xff70, 0xff70, 0x1135d, 0x1135d, 0x115c6, 0x115c8, 0x11a98, 0x11a98, 0x16b42, 0x16b43, 0x16fe0, 0x16fe1,
                                        0x16fe3, 0x16fe3, 0x1e13c, 0x1e13d, 0x1e944, 0x1e946));
    }

    private static void populateEXTENDED_PICTOGRAPHIC() {
        SET_ENCODINGS.put("Extended_Pictographic", CodePointSet.createNoDedup(0x00a9, 0x00a9, 0x00ae, 0x00ae, 0x203c, 0x203c, 0x2049, 0x2049, 0x2122, 0x2122, 0x2139, 0x2139, 0x2194, 0x2199, 0x21a9,
                        0x21aa, 0x231a, 0x231b, 0x2328, 0x2328, 0x2388, 0x2388, 0x23cf, 0x23cf, 0x23e9, 0x23f3, 0x23f8, 0x23fa, 0x24c2, 0x24c2, 0x25aa, 0x25ab, 0x25b6, 0x25b6, 0x25c0, 0x25c0, 0x25fb,
                        0x25fe, 0x2600, 0x2605, 0x2607, 0x2612, 0x2614, 0x2685, 0x2690, 0x2705, 0x2708, 0x2712, 0x2714, 0x2714, 0x2716, 0x2716, 0x271d, 0x271d, 0x2721, 0x2721, 0x2728, 0x2728, 0x2733,
                        0x2734, 0x2744, 0x2744, 0x2747, 0x2747, 0x274c, 0x274c, 0x274e, 0x274e, 0x2753, 0x2755, 0x2757, 0x2757, 0x2763, 0x2767, 0x2795, 0x2797, 0x27a1, 0x27a1, 0x27b0, 0x27b0, 0x27bf,
                        0x27bf, 0x2934, 0x2935, 0x2b05, 0x2b07, 0x2b1b, 0x2b1c, 0x2b50, 0x2b50, 0x2b55, 0x2b55, 0x3030, 0x3030, 0x303d, 0x303d, 0x3297, 0x3297, 0x3299, 0x3299, 0x1f000, 0x1f0ff,
                        0x1f10d, 0x1f10f, 0x1f12f, 0x1f12f, 0x1f16c, 0x1f171, 0x1f17e, 0x1f17f, 0x1f18e, 0x1f18e, 0x1f191, 0x1f19a, 0x1f1ad, 0x1f1e5, 0x1f201, 0x1f20f, 0x1f21a, 0x1f21a, 0x1f22f,
                        0x1f22f, 0x1f232, 0x1f23a, 0x1f23c, 0x1f23f, 0x1f249, 0x1f3fa, 0x1f400, 0x1f53d, 0x1f546, 0x1f64f, 0x1f680, 0x1f6ff, 0x1f774, 0x1f77f, 0x1f7d5, 0x1f7ff, 0x1f80c, 0x1f80f,
                        0x1f848, 0x1f84f, 0x1f85a, 0x1f85f, 0x1f888, 0x1f88f, 0x1f8ae, 0x1f8ff, 0x1f90c, 0x1f93a, 0x1f93c, 0x1f945, 0x1f947, 0x1fffd));
    }

    private static void populateGR_BASE() {
        SET_ENCODINGS.put("Gr_Base", CodePointSet.createNoDedup(0x0020, 0x007e, 0x00a0, 0x00ac, 0x00ae, 0x02ff, 0x0370, 0x0377, 0x037a, 0x037f, 0x0384, 0x038a, 0x038c, 0x038c, 0x038e, 0x03a1, 0x03a3,
                        0x0482, 0x048a, 0x052f, 0x0531, 0x0556, 0x0559, 0x058a, 0x058d, 0x058f, 0x05be, 0x05be, 0x05c0, 0x05c0, 0x05c3, 0x05c3, 0x05c6, 0x05c6, 0x05d0, 0x05ea, 0x05ef, 0x05f4, 0x0606,
                        0x060f, 0x061b, 0x061b, 0x061e, 0x064a, 0x0660, 0x066f, 0x0671, 0x06d5, 0x06de, 0x06de, 0x06e5, 0x06e6, 0x06e9, 0x06e9, 0x06ee, 0x070d, 0x0710, 0x0710, 0x0712, 0x072f, 0x074d,
                        0x07a5, 0x07b1, 0x07b1, 0x07c0, 0x07ea, 0x07f4, 0x07fa, 0x07fe, 0x0815, 0x081a, 0x081a, 0x0824, 0x0824, 0x0828, 0x0828, 0x0830, 0x083e, 0x0840, 0x0858, 0x085e, 0x085e, 0x0860,
                        0x086a, 0x08a0, 0x08b4, 0x08b6, 0x08bd, 0x0903, 0x0939, 0x093b, 0x093b, 0x093d, 0x0940, 0x0949, 0x094c, 0x094e, 0x0950, 0x0958, 0x0961, 0x0964, 0x0980, 0x0982, 0x0983, 0x0985,
                        0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, 0x09aa, 0x09b0, 0x09b2, 0x09b2, 0x09b6, 0x09b9, 0x09bd, 0x09bd, 0x09bf, 0x09c0, 0x09c7, 0x09c8, 0x09cb, 0x09cc, 0x09ce, 0x09ce, 0x09dc,
                        0x09dd, 0x09df, 0x09e1, 0x09e6, 0x09fd, 0x0a03, 0x0a03, 0x0a05, 0x0a0a, 0x0a0f, 0x0a10, 0x0a13, 0x0a28, 0x0a2a, 0x0a30, 0x0a32, 0x0a33, 0x0a35, 0x0a36, 0x0a38, 0x0a39, 0x0a3e,
                        0x0a40, 0x0a59, 0x0a5c, 0x0a5e, 0x0a5e, 0x0a66, 0x0a6f, 0x0a72, 0x0a74, 0x0a76, 0x0a76, 0x0a83, 0x0a83, 0x0a85, 0x0a8d, 0x0a8f, 0x0a91, 0x0a93, 0x0aa8, 0x0aaa, 0x0ab0, 0x0ab2,
                        0x0ab3, 0x0ab5, 0x0ab9, 0x0abd, 0x0ac0, 0x0ac9, 0x0ac9, 0x0acb, 0x0acc, 0x0ad0, 0x0ad0, 0x0ae0, 0x0ae1, 0x0ae6, 0x0af1, 0x0af9, 0x0af9, 0x0b02, 0x0b03, 0x0b05, 0x0b0c, 0x0b0f,
                        0x0b10, 0x0b13, 0x0b28, 0x0b2a, 0x0b30, 0x0b32, 0x0b33, 0x0b35, 0x0b39, 0x0b3d, 0x0b3d, 0x0b40, 0x0b40, 0x0b47, 0x0b48, 0x0b4b, 0x0b4c, 0x0b5c, 0x0b5d, 0x0b5f, 0x0b61, 0x0b66,
                        0x0b77, 0x0b83, 0x0b83, 0x0b85, 0x0b8a, 0x0b8e, 0x0b90, 0x0b92, 0x0b95, 0x0b99, 0x0b9a, 0x0b9c, 0x0b9c, 0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0ba8, 0x0baa, 0x0bae, 0x0bb9, 0x0bbf,
                        0x0bbf, 0x0bc1, 0x0bc2, 0x0bc6, 0x0bc8, 0x0bca, 0x0bcc, 0x0bd0, 0x0bd0, 0x0be6, 0x0bfa, 0x0c01, 0x0c03, 0x0c05, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, 0x0c3d,
                        0x0c3d, 0x0c41, 0x0c44, 0x0c58, 0x0c5a, 0x0c60, 0x0c61, 0x0c66, 0x0c6f, 0x0c77, 0x0c80, 0x0c82, 0x0c8c, 0x0c8e, 0x0c90, 0x0c92, 0x0ca8, 0x0caa, 0x0cb3, 0x0cb5, 0x0cb9, 0x0cbd,
                        0x0cbe, 0x0cc0, 0x0cc1, 0x0cc3, 0x0cc4, 0x0cc7, 0x0cc8, 0x0cca, 0x0ccb, 0x0cde, 0x0cde, 0x0ce0, 0x0ce1, 0x0ce6, 0x0cef, 0x0cf1, 0x0cf2, 0x0d02, 0x0d03, 0x0d05, 0x0d0c, 0x0d0e,
                        0x0d10, 0x0d12, 0x0d3a, 0x0d3d, 0x0d3d, 0x0d3f, 0x0d40, 0x0d46, 0x0d48, 0x0d4a, 0x0d4c, 0x0d4e, 0x0d4f, 0x0d54, 0x0d56, 0x0d58, 0x0d61, 0x0d66, 0x0d7f, 0x0d82, 0x0d83, 0x0d85,
                        0x0d96, 0x0d9a, 0x0db1, 0x0db3, 0x0dbb, 0x0dbd, 0x0dbd, 0x0dc0, 0x0dc6, 0x0dd0, 0x0dd1, 0x0dd8, 0x0dde, 0x0de6, 0x0def, 0x0df2, 0x0df4, 0x0e01, 0x0e30, 0x0e32, 0x0e33, 0x0e3f,
                        0x0e46, 0x0e4f, 0x0e5b, 0x0e81, 0x0e82, 0x0e84, 0x0e84, 0x0e86, 0x0e8a, 0x0e8c, 0x0ea3, 0x0ea5, 0x0ea5, 0x0ea7, 0x0eb0, 0x0eb2, 0x0eb3, 0x0ebd, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6,
                        0x0ec6, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f17, 0x0f1a, 0x0f34, 0x0f36, 0x0f36, 0x0f38, 0x0f38, 0x0f3a, 0x0f47, 0x0f49, 0x0f6c, 0x0f7f, 0x0f7f, 0x0f85, 0x0f85, 0x0f88,
                        0x0f8c, 0x0fbe, 0x0fc5, 0x0fc7, 0x0fcc, 0x0fce, 0x0fda, 0x1000, 0x102c, 0x1031, 0x1031, 0x1038, 0x1038, 0x103b, 0x103c, 0x103f, 0x1057, 0x105a, 0x105d, 0x1061, 0x1070, 0x1075,
                        0x1081, 0x1083, 0x1084, 0x1087, 0x108c, 0x108e, 0x109c, 0x109e, 0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x10d0, 0x1248, 0x124a, 0x124d, 0x1250, 0x1256, 0x1258, 0x1258, 0x125a,
                        0x125d, 0x1260, 0x1288, 0x128a, 0x128d, 0x1290, 0x12b0, 0x12b2, 0x12b5, 0x12b8, 0x12be, 0x12c0, 0x12c0, 0x12c2, 0x12c5, 0x12c8, 0x12d6, 0x12d8, 0x1310, 0x1312, 0x1315, 0x1318,
                        0x135a, 0x1360, 0x137c, 0x1380, 0x1399, 0x13a0, 0x13f5, 0x13f8, 0x13fd, 0x1400, 0x169c, 0x16a0, 0x16f8, 0x1700, 0x170c, 0x170e, 0x1711, 0x1720, 0x1731, 0x1735, 0x1736, 0x1740,
                        0x1751, 0x1760, 0x176c, 0x176e, 0x1770, 0x1780, 0x17b3, 0x17b6, 0x17b6, 0x17be, 0x17c5, 0x17c7, 0x17c8, 0x17d4, 0x17dc, 0x17e0, 0x17e9, 0x17f0, 0x17f9, 0x1800, 0x180a, 0x1810,
                        0x1819, 0x1820, 0x1878, 0x1880, 0x1884, 0x1887, 0x18a8, 0x18aa, 0x18aa, 0x18b0, 0x18f5, 0x1900, 0x191e, 0x1923, 0x1926, 0x1929, 0x192b, 0x1930, 0x1931, 0x1933, 0x1938, 0x1940,
                        0x1940, 0x1944, 0x196d, 0x1970, 0x1974, 0x1980, 0x19ab, 0x19b0, 0x19c9, 0x19d0, 0x19da, 0x19de, 0x1a16, 0x1a19, 0x1a1a, 0x1a1e, 0x1a55, 0x1a57, 0x1a57, 0x1a61, 0x1a61, 0x1a63,
                        0x1a64, 0x1a6d, 0x1a72, 0x1a80, 0x1a89, 0x1a90, 0x1a99, 0x1aa0, 0x1aad, 0x1b04, 0x1b33, 0x1b3b, 0x1b3b, 0x1b3d, 0x1b41, 0x1b43, 0x1b4b, 0x1b50, 0x1b6a, 0x1b74, 0x1b7c, 0x1b82,
                        0x1ba1, 0x1ba6, 0x1ba7, 0x1baa, 0x1baa, 0x1bae, 0x1be5, 0x1be7, 0x1be7, 0x1bea, 0x1bec, 0x1bee, 0x1bee, 0x1bf2, 0x1bf3, 0x1bfc, 0x1c2b, 0x1c34, 0x1c35, 0x1c3b, 0x1c49, 0x1c4d,
                        0x1c88, 0x1c90, 0x1cba, 0x1cbd, 0x1cc7, 0x1cd3, 0x1cd3, 0x1ce1, 0x1ce1, 0x1ce9, 0x1cec, 0x1cee, 0x1cf3, 0x1cf5, 0x1cf7, 0x1cfa, 0x1cfa, 0x1d00, 0x1dbf, 0x1e00, 0x1f15, 0x1f18,
                        0x1f1d, 0x1f20, 0x1f45, 0x1f48, 0x1f4d, 0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f7d, 0x1f80, 0x1fb4, 0x1fb6, 0x1fc4, 0x1fc6, 0x1fd3, 0x1fd6,
                        0x1fdb, 0x1fdd, 0x1fef, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffe, 0x2000, 0x200a, 0x2010, 0x2027, 0x202f, 0x205f, 0x2070, 0x2071, 0x2074, 0x208e, 0x2090, 0x209c, 0x20a0, 0x20bf, 0x2100,
                        0x218b, 0x2190, 0x2426, 0x2440, 0x244a, 0x2460, 0x2b73, 0x2b76, 0x2b95, 0x2b98, 0x2c2e, 0x2c30, 0x2c5e, 0x2c60, 0x2cee, 0x2cf2, 0x2cf3, 0x2cf9, 0x2d25, 0x2d27, 0x2d27, 0x2d2d,
                        0x2d2d, 0x2d30, 0x2d67, 0x2d6f, 0x2d70, 0x2d80, 0x2d96, 0x2da0, 0x2da6, 0x2da8, 0x2dae, 0x2db0, 0x2db6, 0x2db8, 0x2dbe, 0x2dc0, 0x2dc6, 0x2dc8, 0x2dce, 0x2dd0, 0x2dd6, 0x2dd8,
                        0x2dde, 0x2e00, 0x2e4f, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, 0x2ff0, 0x2ffb, 0x3000, 0x3029, 0x3030, 0x303f, 0x3041, 0x3096, 0x309b, 0x30ff, 0x3105, 0x312f, 0x3131,
                        0x318e, 0x3190, 0x31ba, 0x31c0, 0x31e3, 0x31f0, 0x321e, 0x3220, 0x4db5, 0x4dc0, 0x9fef, 0xa000, 0xa48c, 0xa490, 0xa4c6, 0xa4d0, 0xa62b, 0xa640, 0xa66e, 0xa673, 0xa673, 0xa67e,
                        0xa69d, 0xa6a0, 0xa6ef, 0xa6f2, 0xa6f7, 0xa700, 0xa7bf, 0xa7c2, 0xa7c6, 0xa7f7, 0xa801, 0xa803, 0xa805, 0xa807, 0xa80a, 0xa80c, 0xa824, 0xa827, 0xa82b, 0xa830, 0xa839, 0xa840,
                        0xa877, 0xa880, 0xa8c3, 0xa8ce, 0xa8d9, 0xa8f2, 0xa8fe, 0xa900, 0xa925, 0xa92e, 0xa946, 0xa952, 0xa953, 0xa95f, 0xa97c, 0xa983, 0xa9b2, 0xa9b4, 0xa9b5, 0xa9ba, 0xa9bb, 0xa9be,
                        0xa9cd, 0xa9cf, 0xa9d9, 0xa9de, 0xa9e4, 0xa9e6, 0xa9fe, 0xaa00, 0xaa28, 0xaa2f, 0xaa30, 0xaa33, 0xaa34, 0xaa40, 0xaa42, 0xaa44, 0xaa4b, 0xaa4d, 0xaa4d, 0xaa50, 0xaa59, 0xaa5c,
                        0xaa7b, 0xaa7d, 0xaaaf, 0xaab1, 0xaab1, 0xaab5, 0xaab6, 0xaab9, 0xaabd, 0xaac0, 0xaac0, 0xaac2, 0xaac2, 0xaadb, 0xaaeb, 0xaaee, 0xaaf5, 0xab01, 0xab06, 0xab09, 0xab0e, 0xab11,
                        0xab16, 0xab20, 0xab26, 0xab28, 0xab2e, 0xab30, 0xab67, 0xab70, 0xabe4, 0xabe6, 0xabe7, 0xabe9, 0xabec, 0xabf0, 0xabf9, 0xac00, 0xd7a3, 0xd7b0, 0xd7c6, 0xd7cb, 0xd7fb, 0xf900,
                        0xfa6d, 0xfa70, 0xfad9, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xfb1d, 0xfb1d, 0xfb1f, 0xfb36, 0xfb38, 0xfb3c, 0xfb3e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfb46, 0xfbc1, 0xfbd3,
                        0xfd3f, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0, 0xfdfd, 0xfe10, 0xfe19, 0xfe30, 0xfe52, 0xfe54, 0xfe66, 0xfe68, 0xfe6b, 0xfe70, 0xfe74, 0xfe76, 0xfefc, 0xff01, 0xff9d, 0xffa0,
                        0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, 0xffda, 0xffdc, 0xffe0, 0xffe6, 0xffe8, 0xffee, 0xfffc, 0xfffd, 0x10000, 0x1000b, 0x1000d, 0x10026, 0x10028, 0x1003a,
                        0x1003c, 0x1003d, 0x1003f, 0x1004d, 0x10050, 0x1005d, 0x10080, 0x100fa, 0x10100, 0x10102, 0x10107, 0x10133, 0x10137, 0x1018e, 0x10190, 0x1019b, 0x101a0, 0x101a0, 0x101d0,
                        0x101fc, 0x10280, 0x1029c, 0x102a0, 0x102d0, 0x102e1, 0x102fb, 0x10300, 0x10323, 0x1032d, 0x1034a, 0x10350, 0x10375, 0x10380, 0x1039d, 0x1039f, 0x103c3, 0x103c8, 0x103d5,
                        0x10400, 0x1049d, 0x104a0, 0x104a9, 0x104b0, 0x104d3, 0x104d8, 0x104fb, 0x10500, 0x10527, 0x10530, 0x10563, 0x1056f, 0x1056f, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760,
                        0x10767, 0x10800, 0x10805, 0x10808, 0x10808, 0x1080a, 0x10835, 0x10837, 0x10838, 0x1083c, 0x1083c, 0x1083f, 0x10855, 0x10857, 0x1089e, 0x108a7, 0x108af, 0x108e0, 0x108f2,
                        0x108f4, 0x108f5, 0x108fb, 0x1091b, 0x1091f, 0x10939, 0x1093f, 0x1093f, 0x10980, 0x109b7, 0x109bc, 0x109cf, 0x109d2, 0x10a00, 0x10a10, 0x10a13, 0x10a15, 0x10a17, 0x10a19,
                        0x10a35, 0x10a40, 0x10a48, 0x10a50, 0x10a58, 0x10a60, 0x10a9f, 0x10ac0, 0x10ae4, 0x10aeb, 0x10af6, 0x10b00, 0x10b35, 0x10b39, 0x10b55, 0x10b58, 0x10b72, 0x10b78, 0x10b91,
                        0x10b99, 0x10b9c, 0x10ba9, 0x10baf, 0x10c00, 0x10c48, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x10cfa, 0x10d23, 0x10d30, 0x10d39, 0x10e60, 0x10e7e, 0x10f00, 0x10f27, 0x10f30,
                        0x10f45, 0x10f51, 0x10f59, 0x10fe0, 0x10ff6, 0x11000, 0x11000, 0x11002, 0x11037, 0x11047, 0x1104d, 0x11052, 0x1106f, 0x11082, 0x110b2, 0x110b7, 0x110b8, 0x110bb, 0x110bc,
                        0x110be, 0x110c1, 0x110d0, 0x110e8, 0x110f0, 0x110f9, 0x11103, 0x11126, 0x1112c, 0x1112c, 0x11136, 0x11146, 0x11150, 0x11172, 0x11174, 0x11176, 0x11182, 0x111b5, 0x111bf,
                        0x111c8, 0x111cd, 0x111cd, 0x111d0, 0x111df, 0x111e1, 0x111f4, 0x11200, 0x11211, 0x11213, 0x1122e, 0x11232, 0x11233, 0x11235, 0x11235, 0x11238, 0x1123d, 0x11280, 0x11286,
                        0x11288, 0x11288, 0x1128a, 0x1128d, 0x1128f, 0x1129d, 0x1129f, 0x112a9, 0x112b0, 0x112de, 0x112e0, 0x112e2, 0x112f0, 0x112f9, 0x11302, 0x11303, 0x11305, 0x1130c, 0x1130f,
                        0x11310, 0x11313, 0x11328, 0x1132a, 0x11330, 0x11332, 0x11333, 0x11335, 0x11339, 0x1133d, 0x1133d, 0x1133f, 0x1133f, 0x11341, 0x11344, 0x11347, 0x11348, 0x1134b, 0x1134d,
                        0x11350, 0x11350, 0x1135d, 0x11363, 0x11400, 0x11437, 0x11440, 0x11441, 0x11445, 0x11445, 0x11447, 0x11459, 0x1145b, 0x1145b, 0x1145d, 0x1145d, 0x1145f, 0x1145f, 0x11480,
                        0x114af, 0x114b1, 0x114b2, 0x114b9, 0x114b9, 0x114bb, 0x114bc, 0x114be, 0x114be, 0x114c1, 0x114c1, 0x114c4, 0x114c7, 0x114d0, 0x114d9, 0x11580, 0x115ae, 0x115b0, 0x115b1,
                        0x115b8, 0x115bb, 0x115be, 0x115be, 0x115c1, 0x115db, 0x11600, 0x11632, 0x1163b, 0x1163c, 0x1163e, 0x1163e, 0x11641, 0x11644, 0x11650, 0x11659, 0x11660, 0x1166c, 0x11680,
                        0x116aa, 0x116ac, 0x116ac, 0x116ae, 0x116af, 0x116b6, 0x116b6, 0x116b8, 0x116b8, 0x116c0, 0x116c9, 0x11700, 0x1171a, 0x11720, 0x11721, 0x11726, 0x11726, 0x11730, 0x1173f,
                        0x11800, 0x1182e, 0x11838, 0x11838, 0x1183b, 0x1183b, 0x118a0, 0x118f2, 0x118ff, 0x118ff, 0x119a0, 0x119a7, 0x119aa, 0x119d3, 0x119dc, 0x119df, 0x119e1, 0x119e4, 0x11a00,
                        0x11a00, 0x11a0b, 0x11a32, 0x11a39, 0x11a3a, 0x11a3f, 0x11a46, 0x11a50, 0x11a50, 0x11a57, 0x11a58, 0x11a5c, 0x11a89, 0x11a97, 0x11a97, 0x11a9a, 0x11aa2, 0x11ac0, 0x11af8,
                        0x11c00, 0x11c08, 0x11c0a, 0x11c2f, 0x11c3e, 0x11c3e, 0x11c40, 0x11c45, 0x11c50, 0x11c6c, 0x11c70, 0x11c8f, 0x11ca9, 0x11ca9, 0x11cb1, 0x11cb1, 0x11cb4, 0x11cb4, 0x11d00,
                        0x11d06, 0x11d08, 0x11d09, 0x11d0b, 0x11d30, 0x11d46, 0x11d46, 0x11d50, 0x11d59, 0x11d60, 0x11d65, 0x11d67, 0x11d68, 0x11d6a, 0x11d8e, 0x11d93, 0x11d94, 0x11d96, 0x11d96,
                        0x11d98, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef2, 0x11ef5, 0x11ef8, 0x11fc0, 0x11ff1, 0x11fff, 0x12399, 0x12400, 0x1246e, 0x12470, 0x12474, 0x12480, 0x12543, 0x13000,
                        0x1342e, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a60, 0x16a69, 0x16a6e, 0x16a6f, 0x16ad0, 0x16aed, 0x16af5, 0x16af5, 0x16b00, 0x16b2f, 0x16b37, 0x16b45,
                        0x16b50, 0x16b59, 0x16b5b, 0x16b61, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, 0x16e40, 0x16e9a, 0x16f00, 0x16f4a, 0x16f50, 0x16f87, 0x16f93, 0x16f9f, 0x16fe0, 0x16fe3, 0x17000,
                        0x187f7, 0x18800, 0x18af2, 0x1b000, 0x1b11e, 0x1b150, 0x1b152, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, 0x1bc70, 0x1bc7c, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99,
                        0x1bc9c, 0x1bc9c, 0x1bc9f, 0x1bc9f, 0x1d000, 0x1d0f5, 0x1d100, 0x1d126, 0x1d129, 0x1d164, 0x1d166, 0x1d166, 0x1d16a, 0x1d16d, 0x1d183, 0x1d184, 0x1d18c, 0x1d1a9, 0x1d1ae,
                        0x1d1e8, 0x1d200, 0x1d241, 0x1d245, 0x1d245, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2,
                        0x1d4a5, 0x1d4a6, 0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c3, 0x1d4c5, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c, 0x1d51e,
                        0x1d539, 0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d552, 0x1d6a5, 0x1d6a8, 0x1d7cb, 0x1d7ce, 0x1d9ff, 0x1da37, 0x1da3a, 0x1da6d, 0x1da74,
                        0x1da76, 0x1da83, 0x1da85, 0x1da8b, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e140, 0x1e149, 0x1e14e, 0x1e14f, 0x1e2c0, 0x1e2eb, 0x1e2f0, 0x1e2f9, 0x1e2ff, 0x1e2ff, 0x1e800,
                        0x1e8c4, 0x1e8c7, 0x1e8cf, 0x1e900, 0x1e943, 0x1e94b, 0x1e94b, 0x1e950, 0x1e959, 0x1e95e, 0x1e95f, 0x1ec71, 0x1ecb4, 0x1ed01, 0x1ed3d, 0x1ee00, 0x1ee03, 0x1ee05, 0x1ee1f,
                        0x1ee21, 0x1ee22, 0x1ee24, 0x1ee24, 0x1ee27, 0x1ee27, 0x1ee29, 0x1ee32, 0x1ee34, 0x1ee37, 0x1ee39, 0x1ee39, 0x1ee3b, 0x1ee3b, 0x1ee42, 0x1ee42, 0x1ee47, 0x1ee47, 0x1ee49,
                        0x1ee49, 0x1ee4b, 0x1ee4b, 0x1ee4d, 0x1ee4f, 0x1ee51, 0x1ee52, 0x1ee54, 0x1ee54, 0x1ee57, 0x1ee57, 0x1ee59, 0x1ee59, 0x1ee5b, 0x1ee5b, 0x1ee5d, 0x1ee5d, 0x1ee5f, 0x1ee5f,
                        0x1ee61, 0x1ee62, 0x1ee64, 0x1ee64, 0x1ee67, 0x1ee6a, 0x1ee6c, 0x1ee72, 0x1ee74, 0x1ee77, 0x1ee79, 0x1ee7c, 0x1ee7e, 0x1ee7e, 0x1ee80, 0x1ee89, 0x1ee8b, 0x1ee9b, 0x1eea1,
                        0x1eea3, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x1eef0, 0x1eef1, 0x1f000, 0x1f02b, 0x1f030, 0x1f093, 0x1f0a0, 0x1f0ae, 0x1f0b1, 0x1f0bf, 0x1f0c1, 0x1f0cf, 0x1f0d1, 0x1f0f5,
                        0x1f100, 0x1f10c, 0x1f110, 0x1f16c, 0x1f170, 0x1f1ac, 0x1f1e6, 0x1f202, 0x1f210, 0x1f23b, 0x1f240, 0x1f248, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d5, 0x1f6e0,
                        0x1f6ec, 0x1f6f0, 0x1f6fa, 0x1f700, 0x1f773, 0x1f780, 0x1f7d8, 0x1f7e0, 0x1f7eb, 0x1f800, 0x1f80b, 0x1f810, 0x1f847, 0x1f850, 0x1f859, 0x1f860, 0x1f887, 0x1f890, 0x1f8ad,
                        0x1f900, 0x1f90b, 0x1f90d, 0x1f971, 0x1f973, 0x1f976, 0x1f97a, 0x1f9a2, 0x1f9a5, 0x1f9aa, 0x1f9ae, 0x1f9ca, 0x1f9cd, 0x1fa53, 0x1fa60, 0x1fa6d, 0x1fa70, 0x1fa73, 0x1fa78,
                        0x1fa7a, 0x1fa80, 0x1fa82, 0x1fa90, 0x1fa95, 0x20000, 0x2a6d6, 0x2a700, 0x2b734, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, 0x2f800, 0x2fa1d));
    }

    private static void populateGR_EXT() {
        SET_ENCODINGS.put("Gr_Ext", CodePointSet.createNoDedup(0x0300, 0x036f, 0x0483, 0x0489, 0x0591, 0x05bd, 0x05bf, 0x05bf, 0x05c1, 0x05c2, 0x05c4, 0x05c5, 0x05c7, 0x05c7, 0x0610, 0x061a, 0x064b,
                        0x065f, 0x0670, 0x0670, 0x06d6, 0x06dc, 0x06df, 0x06e4, 0x06e7, 0x06e8, 0x06ea, 0x06ed, 0x0711, 0x0711, 0x0730, 0x074a, 0x07a6, 0x07b0, 0x07eb, 0x07f3, 0x07fd, 0x07fd, 0x0816,
                        0x0819, 0x081b, 0x0823, 0x0825, 0x0827, 0x0829, 0x082d, 0x0859, 0x085b, 0x08d3, 0x08e1, 0x08e3, 0x0902, 0x093a, 0x093a, 0x093c, 0x093c, 0x0941, 0x0948, 0x094d, 0x094d, 0x0951,
                        0x0957, 0x0962, 0x0963, 0x0981, 0x0981, 0x09bc, 0x09bc, 0x09be, 0x09be, 0x09c1, 0x09c4, 0x09cd, 0x09cd, 0x09d7, 0x09d7, 0x09e2, 0x09e3, 0x09fe, 0x09fe, 0x0a01, 0x0a02, 0x0a3c,
                        0x0a3c, 0x0a41, 0x0a42, 0x0a47, 0x0a48, 0x0a4b, 0x0a4d, 0x0a51, 0x0a51, 0x0a70, 0x0a71, 0x0a75, 0x0a75, 0x0a81, 0x0a82, 0x0abc, 0x0abc, 0x0ac1, 0x0ac5, 0x0ac7, 0x0ac8, 0x0acd,
                        0x0acd, 0x0ae2, 0x0ae3, 0x0afa, 0x0aff, 0x0b01, 0x0b01, 0x0b3c, 0x0b3c, 0x0b3e, 0x0b3f, 0x0b41, 0x0b44, 0x0b4d, 0x0b4d, 0x0b56, 0x0b57, 0x0b62, 0x0b63, 0x0b82, 0x0b82, 0x0bbe,
                        0x0bbe, 0x0bc0, 0x0bc0, 0x0bcd, 0x0bcd, 0x0bd7, 0x0bd7, 0x0c00, 0x0c00, 0x0c04, 0x0c04, 0x0c3e, 0x0c40, 0x0c46, 0x0c48, 0x0c4a, 0x0c4d, 0x0c55, 0x0c56, 0x0c62, 0x0c63, 0x0c81,
                        0x0c81, 0x0cbc, 0x0cbc, 0x0cbf, 0x0cbf, 0x0cc2, 0x0cc2, 0x0cc6, 0x0cc6, 0x0ccc, 0x0ccd, 0x0cd5, 0x0cd6, 0x0ce2, 0x0ce3, 0x0d00, 0x0d01, 0x0d3b, 0x0d3c, 0x0d3e, 0x0d3e, 0x0d41,
                        0x0d44, 0x0d4d, 0x0d4d, 0x0d57, 0x0d57, 0x0d62, 0x0d63, 0x0dca, 0x0dca, 0x0dcf, 0x0dcf, 0x0dd2, 0x0dd4, 0x0dd6, 0x0dd6, 0x0ddf, 0x0ddf, 0x0e31, 0x0e31, 0x0e34, 0x0e3a, 0x0e47,
                        0x0e4e, 0x0eb1, 0x0eb1, 0x0eb4, 0x0ebc, 0x0ec8, 0x0ecd, 0x0f18, 0x0f19, 0x0f35, 0x0f35, 0x0f37, 0x0f37, 0x0f39, 0x0f39, 0x0f71, 0x0f7e, 0x0f80, 0x0f84, 0x0f86, 0x0f87, 0x0f8d,
                        0x0f97, 0x0f99, 0x0fbc, 0x0fc6, 0x0fc6, 0x102d, 0x1030, 0x1032, 0x1037, 0x1039, 0x103a, 0x103d, 0x103e, 0x1058, 0x1059, 0x105e, 0x1060, 0x1071, 0x1074, 0x1082, 0x1082, 0x1085,
                        0x1086, 0x108d, 0x108d, 0x109d, 0x109d, 0x135d, 0x135f, 0x1712, 0x1714, 0x1732, 0x1734, 0x1752, 0x1753, 0x1772, 0x1773, 0x17b4, 0x17b5, 0x17b7, 0x17bd, 0x17c6, 0x17c6, 0x17c9,
                        0x17d3, 0x17dd, 0x17dd, 0x180b, 0x180d, 0x1885, 0x1886, 0x18a9, 0x18a9, 0x1920, 0x1922, 0x1927, 0x1928, 0x1932, 0x1932, 0x1939, 0x193b, 0x1a17, 0x1a18, 0x1a1b, 0x1a1b, 0x1a56,
                        0x1a56, 0x1a58, 0x1a5e, 0x1a60, 0x1a60, 0x1a62, 0x1a62, 0x1a65, 0x1a6c, 0x1a73, 0x1a7c, 0x1a7f, 0x1a7f, 0x1ab0, 0x1abe, 0x1b00, 0x1b03, 0x1b34, 0x1b3a, 0x1b3c, 0x1b3c, 0x1b42,
                        0x1b42, 0x1b6b, 0x1b73, 0x1b80, 0x1b81, 0x1ba2, 0x1ba5, 0x1ba8, 0x1ba9, 0x1bab, 0x1bad, 0x1be6, 0x1be6, 0x1be8, 0x1be9, 0x1bed, 0x1bed, 0x1bef, 0x1bf1, 0x1c2c, 0x1c33, 0x1c36,
                        0x1c37, 0x1cd0, 0x1cd2, 0x1cd4, 0x1ce0, 0x1ce2, 0x1ce8, 0x1ced, 0x1ced, 0x1cf4, 0x1cf4, 0x1cf8, 0x1cf9, 0x1dc0, 0x1df9, 0x1dfb, 0x1dff, 0x200c, 0x200c, 0x20d0, 0x20f0, 0x2cef,
                        0x2cf1, 0x2d7f, 0x2d7f, 0x2de0, 0x2dff, 0x302a, 0x302f, 0x3099, 0x309a, 0xa66f, 0xa672, 0xa674, 0xa67d, 0xa69e, 0xa69f, 0xa6f0, 0xa6f1, 0xa802, 0xa802, 0xa806, 0xa806, 0xa80b,
                        0xa80b, 0xa825, 0xa826, 0xa8c4, 0xa8c5, 0xa8e0, 0xa8f1, 0xa8ff, 0xa8ff, 0xa926, 0xa92d, 0xa947, 0xa951, 0xa980, 0xa982, 0xa9b3, 0xa9b3, 0xa9b6, 0xa9b9, 0xa9bc, 0xa9bd, 0xa9e5,
                        0xa9e5, 0xaa29, 0xaa2e, 0xaa31, 0xaa32, 0xaa35, 0xaa36, 0xaa43, 0xaa43, 0xaa4c, 0xaa4c, 0xaa7c, 0xaa7c, 0xaab0, 0xaab0, 0xaab2, 0xaab4, 0xaab7, 0xaab8, 0xaabe, 0xaabf, 0xaac1,
                        0xaac1, 0xaaec, 0xaaed, 0xaaf6, 0xaaf6, 0xabe5, 0xabe5, 0xabe8, 0xabe8, 0xabed, 0xabed, 0xfb1e, 0xfb1e, 0xfe00, 0xfe0f, 0xfe20, 0xfe2f, 0xff9e, 0xff9f, 0x101fd, 0x101fd,
                        0x102e0, 0x102e0, 0x10376, 0x1037a, 0x10a01, 0x10a03, 0x10a05, 0x10a06, 0x10a0c, 0x10a0f, 0x10a38, 0x10a3a, 0x10a3f, 0x10a3f, 0x10ae5, 0x10ae6, 0x10d24, 0x10d27, 0x10f46,
                        0x10f50, 0x11001, 0x11001, 0x11038, 0x11046, 0x1107f, 0x11081, 0x110b3, 0x110b6, 0x110b9, 0x110ba, 0x11100, 0x11102, 0x11127, 0x1112b, 0x1112d, 0x11134, 0x11173, 0x11173,
                        0x11180, 0x11181, 0x111b6, 0x111be, 0x111c9, 0x111cc, 0x1122f, 0x11231, 0x11234, 0x11234, 0x11236, 0x11237, 0x1123e, 0x1123e, 0x112df, 0x112df, 0x112e3, 0x112ea, 0x11300,
                        0x11301, 0x1133b, 0x1133c, 0x1133e, 0x1133e, 0x11340, 0x11340, 0x11357, 0x11357, 0x11366, 0x1136c, 0x11370, 0x11374, 0x11438, 0x1143f, 0x11442, 0x11444, 0x11446, 0x11446,
                        0x1145e, 0x1145e, 0x114b0, 0x114b0, 0x114b3, 0x114b8, 0x114ba, 0x114ba, 0x114bd, 0x114bd, 0x114bf, 0x114c0, 0x114c2, 0x114c3, 0x115af, 0x115af, 0x115b2, 0x115b5, 0x115bc,
                        0x115bd, 0x115bf, 0x115c0, 0x115dc, 0x115dd, 0x11633, 0x1163a, 0x1163d, 0x1163d, 0x1163f, 0x11640, 0x116ab, 0x116ab, 0x116ad, 0x116ad, 0x116b0, 0x116b5, 0x116b7, 0x116b7,
                        0x1171d, 0x1171f, 0x11722, 0x11725, 0x11727, 0x1172b, 0x1182f, 0x11837, 0x11839, 0x1183a, 0x119d4, 0x119d7, 0x119da, 0x119db, 0x119e0, 0x119e0, 0x11a01, 0x11a0a, 0x11a33,
                        0x11a38, 0x11a3b, 0x11a3e, 0x11a47, 0x11a47, 0x11a51, 0x11a56, 0x11a59, 0x11a5b, 0x11a8a, 0x11a96, 0x11a98, 0x11a99, 0x11c30, 0x11c36, 0x11c38, 0x11c3d, 0x11c3f, 0x11c3f,
                        0x11c92, 0x11ca7, 0x11caa, 0x11cb0, 0x11cb2, 0x11cb3, 0x11cb5, 0x11cb6, 0x11d31, 0x11d36, 0x11d3a, 0x11d3a, 0x11d3c, 0x11d3d, 0x11d3f, 0x11d45, 0x11d47, 0x11d47, 0x11d90,
                        0x11d91, 0x11d95, 0x11d95, 0x11d97, 0x11d97, 0x11ef3, 0x11ef4, 0x16af0, 0x16af4, 0x16b30, 0x16b36, 0x16f4f, 0x16f4f, 0x16f8f, 0x16f92, 0x1bc9d, 0x1bc9e, 0x1d165, 0x1d165,
                        0x1d167, 0x1d169, 0x1d16e, 0x1d172, 0x1d17b, 0x1d182, 0x1d185, 0x1d18b, 0x1d1aa, 0x1d1ad, 0x1d242, 0x1d244, 0x1da00, 0x1da36, 0x1da3b, 0x1da6c, 0x1da75, 0x1da75, 0x1da84,
                        0x1da84, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, 0x1e130, 0x1e136, 0x1e2ec, 0x1e2ef,
                        0x1e8d0, 0x1e8d6, 0x1e944, 0x1e94a, 0xe0020, 0xe007f, 0xe0100, 0xe01ef));
    }

    private static void populateHEX() {
        SET_ENCODINGS.put("Hex", CodePointSet.createNoDedup(0x0030, 0x0039, 0x0041, 0x0046, 0x0061, 0x0066, 0xff10, 0xff19, 0xff21, 0xff26, 0xff41, 0xff46));
    }

    private static void populateIDC() {
        SET_ENCODINGS.put("IDC", CodePointSet.createNoDedup(0x0030, 0x0039, 0x0041, 0x005a, 0x005f, 0x005f, 0x0061, 0x007a, 0x00aa, 0x00aa, 0x00b5, 0x00b5, 0x00b7, 0x00b7, 0x00ba, 0x00ba, 0x00c0,
                        0x00d6, 0x00d8, 0x00f6, 0x00f8, 0x02c1, 0x02c6, 0x02d1, 0x02e0, 0x02e4, 0x02ec, 0x02ec, 0x02ee, 0x02ee, 0x0300, 0x0374, 0x0376, 0x0377, 0x037a, 0x037d, 0x037f, 0x037f, 0x0386,
                        0x038a, 0x038c, 0x038c, 0x038e, 0x03a1, 0x03a3, 0x03f5, 0x03f7, 0x0481, 0x0483, 0x0487, 0x048a, 0x052f, 0x0531, 0x0556, 0x0559, 0x0559, 0x0560, 0x0588, 0x0591, 0x05bd, 0x05bf,
                        0x05bf, 0x05c1, 0x05c2, 0x05c4, 0x05c5, 0x05c7, 0x05c7, 0x05d0, 0x05ea, 0x05ef, 0x05f2, 0x0610, 0x061a, 0x0620, 0x0669, 0x066e, 0x06d3, 0x06d5, 0x06dc, 0x06df, 0x06e8, 0x06ea,
                        0x06fc, 0x06ff, 0x06ff, 0x0710, 0x074a, 0x074d, 0x07b1, 0x07c0, 0x07f5, 0x07fa, 0x07fa, 0x07fd, 0x07fd, 0x0800, 0x082d, 0x0840, 0x085b, 0x0860, 0x086a, 0x08a0, 0x08b4, 0x08b6,
                        0x08bd, 0x08d3, 0x08e1, 0x08e3, 0x0963, 0x0966, 0x096f, 0x0971, 0x0983, 0x0985, 0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, 0x09aa, 0x09b0, 0x09b2, 0x09b2, 0x09b6, 0x09b9, 0x09bc,
                        0x09c4, 0x09c7, 0x09c8, 0x09cb, 0x09ce, 0x09d7, 0x09d7, 0x09dc, 0x09dd, 0x09df, 0x09e3, 0x09e6, 0x09f1, 0x09fc, 0x09fc, 0x09fe, 0x09fe, 0x0a01, 0x0a03, 0x0a05, 0x0a0a, 0x0a0f,
                        0x0a10, 0x0a13, 0x0a28, 0x0a2a, 0x0a30, 0x0a32, 0x0a33, 0x0a35, 0x0a36, 0x0a38, 0x0a39, 0x0a3c, 0x0a3c, 0x0a3e, 0x0a42, 0x0a47, 0x0a48, 0x0a4b, 0x0a4d, 0x0a51, 0x0a51, 0x0a59,
                        0x0a5c, 0x0a5e, 0x0a5e, 0x0a66, 0x0a75, 0x0a81, 0x0a83, 0x0a85, 0x0a8d, 0x0a8f, 0x0a91, 0x0a93, 0x0aa8, 0x0aaa, 0x0ab0, 0x0ab2, 0x0ab3, 0x0ab5, 0x0ab9, 0x0abc, 0x0ac5, 0x0ac7,
                        0x0ac9, 0x0acb, 0x0acd, 0x0ad0, 0x0ad0, 0x0ae0, 0x0ae3, 0x0ae6, 0x0aef, 0x0af9, 0x0aff, 0x0b01, 0x0b03, 0x0b05, 0x0b0c, 0x0b0f, 0x0b10, 0x0b13, 0x0b28, 0x0b2a, 0x0b30, 0x0b32,
                        0x0b33, 0x0b35, 0x0b39, 0x0b3c, 0x0b44, 0x0b47, 0x0b48, 0x0b4b, 0x0b4d, 0x0b56, 0x0b57, 0x0b5c, 0x0b5d, 0x0b5f, 0x0b63, 0x0b66, 0x0b6f, 0x0b71, 0x0b71, 0x0b82, 0x0b83, 0x0b85,
                        0x0b8a, 0x0b8e, 0x0b90, 0x0b92, 0x0b95, 0x0b99, 0x0b9a, 0x0b9c, 0x0b9c, 0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0ba8, 0x0baa, 0x0bae, 0x0bb9, 0x0bbe, 0x0bc2, 0x0bc6, 0x0bc8, 0x0bca,
                        0x0bcd, 0x0bd0, 0x0bd0, 0x0bd7, 0x0bd7, 0x0be6, 0x0bef, 0x0c00, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, 0x0c3d, 0x0c44, 0x0c46, 0x0c48, 0x0c4a, 0x0c4d, 0x0c55,
                        0x0c56, 0x0c58, 0x0c5a, 0x0c60, 0x0c63, 0x0c66, 0x0c6f, 0x0c80, 0x0c83, 0x0c85, 0x0c8c, 0x0c8e, 0x0c90, 0x0c92, 0x0ca8, 0x0caa, 0x0cb3, 0x0cb5, 0x0cb9, 0x0cbc, 0x0cc4, 0x0cc6,
                        0x0cc8, 0x0cca, 0x0ccd, 0x0cd5, 0x0cd6, 0x0cde, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, 0x0cf1, 0x0cf2, 0x0d00, 0x0d03, 0x0d05, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, 0x0d46,
                        0x0d48, 0x0d4a, 0x0d4e, 0x0d54, 0x0d57, 0x0d5f, 0x0d63, 0x0d66, 0x0d6f, 0x0d7a, 0x0d7f, 0x0d82, 0x0d83, 0x0d85, 0x0d96, 0x0d9a, 0x0db1, 0x0db3, 0x0dbb, 0x0dbd, 0x0dbd, 0x0dc0,
                        0x0dc6, 0x0dca, 0x0dca, 0x0dcf, 0x0dd4, 0x0dd6, 0x0dd6, 0x0dd8, 0x0ddf, 0x0de6, 0x0def, 0x0df2, 0x0df3, 0x0e01, 0x0e3a, 0x0e40, 0x0e4e, 0x0e50, 0x0e59, 0x0e81, 0x0e82, 0x0e84,
                        0x0e84, 0x0e86, 0x0e8a, 0x0e8c, 0x0ea3, 0x0ea5, 0x0ea5, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, 0x0ec8, 0x0ecd, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f00, 0x0f18,
                        0x0f19, 0x0f20, 0x0f29, 0x0f35, 0x0f35, 0x0f37, 0x0f37, 0x0f39, 0x0f39, 0x0f3e, 0x0f47, 0x0f49, 0x0f6c, 0x0f71, 0x0f84, 0x0f86, 0x0f97, 0x0f99, 0x0fbc, 0x0fc6, 0x0fc6, 0x1000,
                        0x1049, 0x1050, 0x109d, 0x10a0, 0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x10d0, 0x10fa, 0x10fc, 0x1248, 0x124a, 0x124d, 0x1250, 0x1256, 0x1258, 0x1258, 0x125a, 0x125d, 0x1260,
                        0x1288, 0x128a, 0x128d, 0x1290, 0x12b0, 0x12b2, 0x12b5, 0x12b8, 0x12be, 0x12c0, 0x12c0, 0x12c2, 0x12c5, 0x12c8, 0x12d6, 0x12d8, 0x1310, 0x1312, 0x1315, 0x1318, 0x135a, 0x135d,
                        0x135f, 0x1369, 0x1371, 0x1380, 0x138f, 0x13a0, 0x13f5, 0x13f8, 0x13fd, 0x1401, 0x166c, 0x166f, 0x167f, 0x1681, 0x169a, 0x16a0, 0x16ea, 0x16ee, 0x16f8, 0x1700, 0x170c, 0x170e,
                        0x1714, 0x1720, 0x1734, 0x1740, 0x1753, 0x1760, 0x176c, 0x176e, 0x1770, 0x1772, 0x1773, 0x1780, 0x17d3, 0x17d7, 0x17d7, 0x17dc, 0x17dd, 0x17e0, 0x17e9, 0x180b, 0x180d, 0x1810,
                        0x1819, 0x1820, 0x1878, 0x1880, 0x18aa, 0x18b0, 0x18f5, 0x1900, 0x191e, 0x1920, 0x192b, 0x1930, 0x193b, 0x1946, 0x196d, 0x1970, 0x1974, 0x1980, 0x19ab, 0x19b0, 0x19c9, 0x19d0,
                        0x19da, 0x1a00, 0x1a1b, 0x1a20, 0x1a5e, 0x1a60, 0x1a7c, 0x1a7f, 0x1a89, 0x1a90, 0x1a99, 0x1aa7, 0x1aa7, 0x1ab0, 0x1abd, 0x1b00, 0x1b4b, 0x1b50, 0x1b59, 0x1b6b, 0x1b73, 0x1b80,
                        0x1bf3, 0x1c00, 0x1c37, 0x1c40, 0x1c49, 0x1c4d, 0x1c7d, 0x1c80, 0x1c88, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1cd0, 0x1cd2, 0x1cd4, 0x1cfa, 0x1d00, 0x1df9, 0x1dfb, 0x1f15, 0x1f18,
                        0x1f1d, 0x1f20, 0x1f45, 0x1f48, 0x1f4d, 0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f7d, 0x1f80, 0x1fb4, 0x1fb6, 0x1fbc, 0x1fbe, 0x1fbe, 0x1fc2,
                        0x1fc4, 0x1fc6, 0x1fcc, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fdb, 0x1fe0, 0x1fec, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffc, 0x203f, 0x2040, 0x2054, 0x2054, 0x2071, 0x2071, 0x207f, 0x207f, 0x2090,
                        0x209c, 0x20d0, 0x20dc, 0x20e1, 0x20e1, 0x20e5, 0x20f0, 0x2102, 0x2102, 0x2107, 0x2107, 0x210a, 0x2113, 0x2115, 0x2115, 0x2118, 0x211d, 0x2124, 0x2124, 0x2126, 0x2126, 0x2128,
                        0x2128, 0x212a, 0x2139, 0x213c, 0x213f, 0x2145, 0x2149, 0x214e, 0x214e, 0x2160, 0x2188, 0x2c00, 0x2c2e, 0x2c30, 0x2c5e, 0x2c60, 0x2ce4, 0x2ceb, 0x2cf3, 0x2d00, 0x2d25, 0x2d27,
                        0x2d27, 0x2d2d, 0x2d2d, 0x2d30, 0x2d67, 0x2d6f, 0x2d6f, 0x2d7f, 0x2d96, 0x2da0, 0x2da6, 0x2da8, 0x2dae, 0x2db0, 0x2db6, 0x2db8, 0x2dbe, 0x2dc0, 0x2dc6, 0x2dc8, 0x2dce, 0x2dd0,
                        0x2dd6, 0x2dd8, 0x2dde, 0x2de0, 0x2dff, 0x3005, 0x3007, 0x3021, 0x302f, 0x3031, 0x3035, 0x3038, 0x303c, 0x3041, 0x3096, 0x3099, 0x309f, 0x30a1, 0x30fa, 0x30fc, 0x30ff, 0x3105,
                        0x312f, 0x3131, 0x318e, 0x31a0, 0x31ba, 0x31f0, 0x31ff, 0x3400, 0x4db5, 0x4e00, 0x9fef, 0xa000, 0xa48c, 0xa4d0, 0xa4fd, 0xa500, 0xa60c, 0xa610, 0xa62b, 0xa640, 0xa66f, 0xa674,
                        0xa67d, 0xa67f, 0xa6f1, 0xa717, 0xa71f, 0xa722, 0xa788, 0xa78b, 0xa7bf, 0xa7c2, 0xa7c6, 0xa7f7, 0xa827, 0xa840, 0xa873, 0xa880, 0xa8c5, 0xa8d0, 0xa8d9, 0xa8e0, 0xa8f7, 0xa8fb,
                        0xa8fb, 0xa8fd, 0xa92d, 0xa930, 0xa953, 0xa960, 0xa97c, 0xa980, 0xa9c0, 0xa9cf, 0xa9d9, 0xa9e0, 0xa9fe, 0xaa00, 0xaa36, 0xaa40, 0xaa4d, 0xaa50, 0xaa59, 0xaa60, 0xaa76, 0xaa7a,
                        0xaac2, 0xaadb, 0xaadd, 0xaae0, 0xaaef, 0xaaf2, 0xaaf6, 0xab01, 0xab06, 0xab09, 0xab0e, 0xab11, 0xab16, 0xab20, 0xab26, 0xab28, 0xab2e, 0xab30, 0xab5a, 0xab5c, 0xab67, 0xab70,
                        0xabea, 0xabec, 0xabed, 0xabf0, 0xabf9, 0xac00, 0xd7a3, 0xd7b0, 0xd7c6, 0xd7cb, 0xd7fb, 0xf900, 0xfa6d, 0xfa70, 0xfad9, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xfb1d, 0xfb28, 0xfb2a,
                        0xfb36, 0xfb38, 0xfb3c, 0xfb3e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfb46, 0xfbb1, 0xfbd3, 0xfd3d, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0, 0xfdfb, 0xfe00, 0xfe0f, 0xfe20,
                        0xfe2f, 0xfe33, 0xfe34, 0xfe4d, 0xfe4f, 0xfe70, 0xfe74, 0xfe76, 0xfefc, 0xff10, 0xff19, 0xff21, 0xff3a, 0xff3f, 0xff3f, 0xff41, 0xff5a, 0xff66, 0xffbe, 0xffc2, 0xffc7, 0xffca,
                        0xffcf, 0xffd2, 0xffd7, 0xffda, 0xffdc, 0x10000, 0x1000b, 0x1000d, 0x10026, 0x10028, 0x1003a, 0x1003c, 0x1003d, 0x1003f, 0x1004d, 0x10050, 0x1005d, 0x10080, 0x100fa, 0x10140,
                        0x10174, 0x101fd, 0x101fd, 0x10280, 0x1029c, 0x102a0, 0x102d0, 0x102e0, 0x102e0, 0x10300, 0x1031f, 0x1032d, 0x1034a, 0x10350, 0x1037a, 0x10380, 0x1039d, 0x103a0, 0x103c3,
                        0x103c8, 0x103cf, 0x103d1, 0x103d5, 0x10400, 0x1049d, 0x104a0, 0x104a9, 0x104b0, 0x104d3, 0x104d8, 0x104fb, 0x10500, 0x10527, 0x10530, 0x10563, 0x10600, 0x10736, 0x10740,
                        0x10755, 0x10760, 0x10767, 0x10800, 0x10805, 0x10808, 0x10808, 0x1080a, 0x10835, 0x10837, 0x10838, 0x1083c, 0x1083c, 0x1083f, 0x10855, 0x10860, 0x10876, 0x10880, 0x1089e,
                        0x108e0, 0x108f2, 0x108f4, 0x108f5, 0x10900, 0x10915, 0x10920, 0x10939, 0x10980, 0x109b7, 0x109be, 0x109bf, 0x10a00, 0x10a03, 0x10a05, 0x10a06, 0x10a0c, 0x10a13, 0x10a15,
                        0x10a17, 0x10a19, 0x10a35, 0x10a38, 0x10a3a, 0x10a3f, 0x10a3f, 0x10a60, 0x10a7c, 0x10a80, 0x10a9c, 0x10ac0, 0x10ac7, 0x10ac9, 0x10ae6, 0x10b00, 0x10b35, 0x10b40, 0x10b55,
                        0x10b60, 0x10b72, 0x10b80, 0x10b91, 0x10c00, 0x10c48, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x10d00, 0x10d27, 0x10d30, 0x10d39, 0x10f00, 0x10f1c, 0x10f27, 0x10f27, 0x10f30,
                        0x10f50, 0x10fe0, 0x10ff6, 0x11000, 0x11046, 0x11066, 0x1106f, 0x1107f, 0x110ba, 0x110d0, 0x110e8, 0x110f0, 0x110f9, 0x11100, 0x11134, 0x11136, 0x1113f, 0x11144, 0x11146,
                        0x11150, 0x11173, 0x11176, 0x11176, 0x11180, 0x111c4, 0x111c9, 0x111cc, 0x111d0, 0x111da, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x11237, 0x1123e, 0x1123e, 0x11280,
                        0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, 0x1128f, 0x1129d, 0x1129f, 0x112a8, 0x112b0, 0x112ea, 0x112f0, 0x112f9, 0x11300, 0x11303, 0x11305, 0x1130c, 0x1130f, 0x11310,
                        0x11313, 0x11328, 0x1132a, 0x11330, 0x11332, 0x11333, 0x11335, 0x11339, 0x1133b, 0x11344, 0x11347, 0x11348, 0x1134b, 0x1134d, 0x11350, 0x11350, 0x11357, 0x11357, 0x1135d,
                        0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, 0x11400, 0x1144a, 0x11450, 0x11459, 0x1145e, 0x1145f, 0x11480, 0x114c5, 0x114c7, 0x114c7, 0x114d0, 0x114d9, 0x11580, 0x115b5,
                        0x115b8, 0x115c0, 0x115d8, 0x115dd, 0x11600, 0x11640, 0x11644, 0x11644, 0x11650, 0x11659, 0x11680, 0x116b8, 0x116c0, 0x116c9, 0x11700, 0x1171a, 0x1171d, 0x1172b, 0x11730,
                        0x11739, 0x11800, 0x1183a, 0x118a0, 0x118e9, 0x118ff, 0x118ff, 0x119a0, 0x119a7, 0x119aa, 0x119d7, 0x119da, 0x119e1, 0x119e3, 0x119e4, 0x11a00, 0x11a3e, 0x11a47, 0x11a47,
                        0x11a50, 0x11a99, 0x11a9d, 0x11a9d, 0x11ac0, 0x11af8, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c40, 0x11c50, 0x11c59, 0x11c72, 0x11c8f, 0x11c92, 0x11ca7, 0x11ca9,
                        0x11cb6, 0x11d00, 0x11d06, 0x11d08, 0x11d09, 0x11d0b, 0x11d36, 0x11d3a, 0x11d3a, 0x11d3c, 0x11d3d, 0x11d3f, 0x11d47, 0x11d50, 0x11d59, 0x11d60, 0x11d65, 0x11d67, 0x11d68,
                        0x11d6a, 0x11d8e, 0x11d90, 0x11d91, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef6, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x13000, 0x1342e, 0x14400,
                        0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a60, 0x16a69, 0x16ad0, 0x16aed, 0x16af0, 0x16af4, 0x16b00, 0x16b36, 0x16b40, 0x16b43, 0x16b50, 0x16b59, 0x16b63, 0x16b77,
                        0x16b7d, 0x16b8f, 0x16e40, 0x16e7f, 0x16f00, 0x16f4a, 0x16f4f, 0x16f87, 0x16f8f, 0x16f9f, 0x16fe0, 0x16fe1, 0x16fe3, 0x16fe3, 0x17000, 0x187f7, 0x18800, 0x18af2, 0x1b000,
                        0x1b11e, 0x1b150, 0x1b152, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, 0x1bc70, 0x1bc7c, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9d, 0x1bc9e, 0x1d165, 0x1d169,
                        0x1d16d, 0x1d172, 0x1d17b, 0x1d182, 0x1d185, 0x1d18b, 0x1d1aa, 0x1d1ad, 0x1d242, 0x1d244, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5,
                        0x1d4a6, 0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c3, 0x1d4c5, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c, 0x1d51e, 0x1d539,
                        0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d552, 0x1d6a5, 0x1d6a8, 0x1d6c0, 0x1d6c2, 0x1d6da, 0x1d6dc, 0x1d6fa, 0x1d6fc, 0x1d714, 0x1d716,
                        0x1d734, 0x1d736, 0x1d74e, 0x1d750, 0x1d76e, 0x1d770, 0x1d788, 0x1d78a, 0x1d7a8, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7cb, 0x1d7ce, 0x1d7ff, 0x1da00, 0x1da36, 0x1da3b, 0x1da6c,
                        0x1da75, 0x1da75, 0x1da84, 0x1da84, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, 0x1e100,
                        0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, 0x1e14e, 0x1e14e, 0x1e2c0, 0x1e2f9, 0x1e800, 0x1e8c4, 0x1e8d0, 0x1e8d6, 0x1e900, 0x1e94b, 0x1e950, 0x1e959, 0x1ee00, 0x1ee03,
                        0x1ee05, 0x1ee1f, 0x1ee21, 0x1ee22, 0x1ee24, 0x1ee24, 0x1ee27, 0x1ee27, 0x1ee29, 0x1ee32, 0x1ee34, 0x1ee37, 0x1ee39, 0x1ee39, 0x1ee3b, 0x1ee3b, 0x1ee42, 0x1ee42, 0x1ee47,
                        0x1ee47, 0x1ee49, 0x1ee49, 0x1ee4b, 0x1ee4b, 0x1ee4d, 0x1ee4f, 0x1ee51, 0x1ee52, 0x1ee54, 0x1ee54, 0x1ee57, 0x1ee57, 0x1ee59, 0x1ee59, 0x1ee5b, 0x1ee5b, 0x1ee5d, 0x1ee5d,
                        0x1ee5f, 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64, 0x1ee64, 0x1ee67, 0x1ee6a, 0x1ee6c, 0x1ee72, 0x1ee74, 0x1ee77, 0x1ee79, 0x1ee7c, 0x1ee7e, 0x1ee7e, 0x1ee80, 0x1ee89, 0x1ee8b,
                        0x1ee9b, 0x1eea1, 0x1eea3, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x20000, 0x2a6d6, 0x2a700, 0x2b734, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, 0x2f800, 0x2fa1d,
                        0xe0100, 0xe01ef));
    }

    private static void populateIDS() {
        SET_ENCODINGS.put("IDS", CodePointSet.createNoDedup(0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, 0x00b5, 0x00b5, 0x00ba, 0x00ba, 0x00c0, 0x00d6, 0x00d8, 0x00f6, 0x00f8, 0x02c1, 0x02c6,
                        0x02d1, 0x02e0, 0x02e4, 0x02ec, 0x02ec, 0x02ee, 0x02ee, 0x0370, 0x0374, 0x0376, 0x0377, 0x037a, 0x037d, 0x037f, 0x037f, 0x0386, 0x0386, 0x0388, 0x038a, 0x038c, 0x038c, 0x038e,
                        0x03a1, 0x03a3, 0x03f5, 0x03f7, 0x0481, 0x048a, 0x052f, 0x0531, 0x0556, 0x0559, 0x0559, 0x0560, 0x0588, 0x05d0, 0x05ea, 0x05ef, 0x05f2, 0x0620, 0x064a, 0x066e, 0x066f, 0x0671,
                        0x06d3, 0x06d5, 0x06d5, 0x06e5, 0x06e6, 0x06ee, 0x06ef, 0x06fa, 0x06fc, 0x06ff, 0x06ff, 0x0710, 0x0710, 0x0712, 0x072f, 0x074d, 0x07a5, 0x07b1, 0x07b1, 0x07ca, 0x07ea, 0x07f4,
                        0x07f5, 0x07fa, 0x07fa, 0x0800, 0x0815, 0x081a, 0x081a, 0x0824, 0x0824, 0x0828, 0x0828, 0x0840, 0x0858, 0x0860, 0x086a, 0x08a0, 0x08b4, 0x08b6, 0x08bd, 0x0904, 0x0939, 0x093d,
                        0x093d, 0x0950, 0x0950, 0x0958, 0x0961, 0x0971, 0x0980, 0x0985, 0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, 0x09aa, 0x09b0, 0x09b2, 0x09b2, 0x09b6, 0x09b9, 0x09bd, 0x09bd, 0x09ce,
                        0x09ce, 0x09dc, 0x09dd, 0x09df, 0x09e1, 0x09f0, 0x09f1, 0x09fc, 0x09fc, 0x0a05, 0x0a0a, 0x0a0f, 0x0a10, 0x0a13, 0x0a28, 0x0a2a, 0x0a30, 0x0a32, 0x0a33, 0x0a35, 0x0a36, 0x0a38,
                        0x0a39, 0x0a59, 0x0a5c, 0x0a5e, 0x0a5e, 0x0a72, 0x0a74, 0x0a85, 0x0a8d, 0x0a8f, 0x0a91, 0x0a93, 0x0aa8, 0x0aaa, 0x0ab0, 0x0ab2, 0x0ab3, 0x0ab5, 0x0ab9, 0x0abd, 0x0abd, 0x0ad0,
                        0x0ad0, 0x0ae0, 0x0ae1, 0x0af9, 0x0af9, 0x0b05, 0x0b0c, 0x0b0f, 0x0b10, 0x0b13, 0x0b28, 0x0b2a, 0x0b30, 0x0b32, 0x0b33, 0x0b35, 0x0b39, 0x0b3d, 0x0b3d, 0x0b5c, 0x0b5d, 0x0b5f,
                        0x0b61, 0x0b71, 0x0b71, 0x0b83, 0x0b83, 0x0b85, 0x0b8a, 0x0b8e, 0x0b90, 0x0b92, 0x0b95, 0x0b99, 0x0b9a, 0x0b9c, 0x0b9c, 0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0ba8, 0x0baa, 0x0bae,
                        0x0bb9, 0x0bd0, 0x0bd0, 0x0c05, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, 0x0c3d, 0x0c3d, 0x0c58, 0x0c5a, 0x0c60, 0x0c61, 0x0c80, 0x0c80, 0x0c85, 0x0c8c, 0x0c8e,
                        0x0c90, 0x0c92, 0x0ca8, 0x0caa, 0x0cb3, 0x0cb5, 0x0cb9, 0x0cbd, 0x0cbd, 0x0cde, 0x0cde, 0x0ce0, 0x0ce1, 0x0cf1, 0x0cf2, 0x0d05, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d3a, 0x0d3d,
                        0x0d3d, 0x0d4e, 0x0d4e, 0x0d54, 0x0d56, 0x0d5f, 0x0d61, 0x0d7a, 0x0d7f, 0x0d85, 0x0d96, 0x0d9a, 0x0db1, 0x0db3, 0x0dbb, 0x0dbd, 0x0dbd, 0x0dc0, 0x0dc6, 0x0e01, 0x0e30, 0x0e32,
                        0x0e33, 0x0e40, 0x0e46, 0x0e81, 0x0e82, 0x0e84, 0x0e84, 0x0e86, 0x0e8a, 0x0e8c, 0x0ea3, 0x0ea5, 0x0ea5, 0x0ea7, 0x0eb0, 0x0eb2, 0x0eb3, 0x0ebd, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6,
                        0x0ec6, 0x0edc, 0x0edf, 0x0f00, 0x0f00, 0x0f40, 0x0f47, 0x0f49, 0x0f6c, 0x0f88, 0x0f8c, 0x1000, 0x102a, 0x103f, 0x103f, 0x1050, 0x1055, 0x105a, 0x105d, 0x1061, 0x1061, 0x1065,
                        0x1066, 0x106e, 0x1070, 0x1075, 0x1081, 0x108e, 0x108e, 0x10a0, 0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x10d0, 0x10fa, 0x10fc, 0x1248, 0x124a, 0x124d, 0x1250, 0x1256, 0x1258,
                        0x1258, 0x125a, 0x125d, 0x1260, 0x1288, 0x128a, 0x128d, 0x1290, 0x12b0, 0x12b2, 0x12b5, 0x12b8, 0x12be, 0x12c0, 0x12c0, 0x12c2, 0x12c5, 0x12c8, 0x12d6, 0x12d8, 0x1310, 0x1312,
                        0x1315, 0x1318, 0x135a, 0x1380, 0x138f, 0x13a0, 0x13f5, 0x13f8, 0x13fd, 0x1401, 0x166c, 0x166f, 0x167f, 0x1681, 0x169a, 0x16a0, 0x16ea, 0x16ee, 0x16f8, 0x1700, 0x170c, 0x170e,
                        0x1711, 0x1720, 0x1731, 0x1740, 0x1751, 0x1760, 0x176c, 0x176e, 0x1770, 0x1780, 0x17b3, 0x17d7, 0x17d7, 0x17dc, 0x17dc, 0x1820, 0x1878, 0x1880, 0x18a8, 0x18aa, 0x18aa, 0x18b0,
                        0x18f5, 0x1900, 0x191e, 0x1950, 0x196d, 0x1970, 0x1974, 0x1980, 0x19ab, 0x19b0, 0x19c9, 0x1a00, 0x1a16, 0x1a20, 0x1a54, 0x1aa7, 0x1aa7, 0x1b05, 0x1b33, 0x1b45, 0x1b4b, 0x1b83,
                        0x1ba0, 0x1bae, 0x1baf, 0x1bba, 0x1be5, 0x1c00, 0x1c23, 0x1c4d, 0x1c4f, 0x1c5a, 0x1c7d, 0x1c80, 0x1c88, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1ce9, 0x1cec, 0x1cee, 0x1cf3, 0x1cf5,
                        0x1cf6, 0x1cfa, 0x1cfa, 0x1d00, 0x1dbf, 0x1e00, 0x1f15, 0x1f18, 0x1f1d, 0x1f20, 0x1f45, 0x1f48, 0x1f4d, 0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f,
                        0x1f7d, 0x1f80, 0x1fb4, 0x1fb6, 0x1fbc, 0x1fbe, 0x1fbe, 0x1fc2, 0x1fc4, 0x1fc6, 0x1fcc, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fdb, 0x1fe0, 0x1fec, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffc, 0x2071,
                        0x2071, 0x207f, 0x207f, 0x2090, 0x209c, 0x2102, 0x2102, 0x2107, 0x2107, 0x210a, 0x2113, 0x2115, 0x2115, 0x2118, 0x211d, 0x2124, 0x2124, 0x2126, 0x2126, 0x2128, 0x2128, 0x212a,
                        0x2139, 0x213c, 0x213f, 0x2145, 0x2149, 0x214e, 0x214e, 0x2160, 0x2188, 0x2c00, 0x2c2e, 0x2c30, 0x2c5e, 0x2c60, 0x2ce4, 0x2ceb, 0x2cee, 0x2cf2, 0x2cf3, 0x2d00, 0x2d25, 0x2d27,
                        0x2d27, 0x2d2d, 0x2d2d, 0x2d30, 0x2d67, 0x2d6f, 0x2d6f, 0x2d80, 0x2d96, 0x2da0, 0x2da6, 0x2da8, 0x2dae, 0x2db0, 0x2db6, 0x2db8, 0x2dbe, 0x2dc0, 0x2dc6, 0x2dc8, 0x2dce, 0x2dd0,
                        0x2dd6, 0x2dd8, 0x2dde, 0x3005, 0x3007, 0x3021, 0x3029, 0x3031, 0x3035, 0x3038, 0x303c, 0x3041, 0x3096, 0x309b, 0x309f, 0x30a1, 0x30fa, 0x30fc, 0x30ff, 0x3105, 0x312f, 0x3131,
                        0x318e, 0x31a0, 0x31ba, 0x31f0, 0x31ff, 0x3400, 0x4db5, 0x4e00, 0x9fef, 0xa000, 0xa48c, 0xa4d0, 0xa4fd, 0xa500, 0xa60c, 0xa610, 0xa61f, 0xa62a, 0xa62b, 0xa640, 0xa66e, 0xa67f,
                        0xa69d, 0xa6a0, 0xa6ef, 0xa717, 0xa71f, 0xa722, 0xa788, 0xa78b, 0xa7bf, 0xa7c2, 0xa7c6, 0xa7f7, 0xa801, 0xa803, 0xa805, 0xa807, 0xa80a, 0xa80c, 0xa822, 0xa840, 0xa873, 0xa882,
                        0xa8b3, 0xa8f2, 0xa8f7, 0xa8fb, 0xa8fb, 0xa8fd, 0xa8fe, 0xa90a, 0xa925, 0xa930, 0xa946, 0xa960, 0xa97c, 0xa984, 0xa9b2, 0xa9cf, 0xa9cf, 0xa9e0, 0xa9e4, 0xa9e6, 0xa9ef, 0xa9fa,
                        0xa9fe, 0xaa00, 0xaa28, 0xaa40, 0xaa42, 0xaa44, 0xaa4b, 0xaa60, 0xaa76, 0xaa7a, 0xaa7a, 0xaa7e, 0xaaaf, 0xaab1, 0xaab1, 0xaab5, 0xaab6, 0xaab9, 0xaabd, 0xaac0, 0xaac0, 0xaac2,
                        0xaac2, 0xaadb, 0xaadd, 0xaae0, 0xaaea, 0xaaf2, 0xaaf4, 0xab01, 0xab06, 0xab09, 0xab0e, 0xab11, 0xab16, 0xab20, 0xab26, 0xab28, 0xab2e, 0xab30, 0xab5a, 0xab5c, 0xab67, 0xab70,
                        0xabe2, 0xac00, 0xd7a3, 0xd7b0, 0xd7c6, 0xd7cb, 0xd7fb, 0xf900, 0xfa6d, 0xfa70, 0xfad9, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xfb1d, 0xfb1d, 0xfb1f, 0xfb28, 0xfb2a, 0xfb36, 0xfb38,
                        0xfb3c, 0xfb3e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfb46, 0xfbb1, 0xfbd3, 0xfd3d, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0, 0xfdfb, 0xfe70, 0xfe74, 0xfe76, 0xfefc, 0xff21,
                        0xff3a, 0xff41, 0xff5a, 0xff66, 0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, 0xffda, 0xffdc, 0x10000, 0x1000b, 0x1000d, 0x10026, 0x10028, 0x1003a, 0x1003c, 0x1003d,
                        0x1003f, 0x1004d, 0x10050, 0x1005d, 0x10080, 0x100fa, 0x10140, 0x10174, 0x10280, 0x1029c, 0x102a0, 0x102d0, 0x10300, 0x1031f, 0x1032d, 0x1034a, 0x10350, 0x10375, 0x10380,
                        0x1039d, 0x103a0, 0x103c3, 0x103c8, 0x103cf, 0x103d1, 0x103d5, 0x10400, 0x1049d, 0x104b0, 0x104d3, 0x104d8, 0x104fb, 0x10500, 0x10527, 0x10530, 0x10563, 0x10600, 0x10736,
                        0x10740, 0x10755, 0x10760, 0x10767, 0x10800, 0x10805, 0x10808, 0x10808, 0x1080a, 0x10835, 0x10837, 0x10838, 0x1083c, 0x1083c, 0x1083f, 0x10855, 0x10860, 0x10876, 0x10880,
                        0x1089e, 0x108e0, 0x108f2, 0x108f4, 0x108f5, 0x10900, 0x10915, 0x10920, 0x10939, 0x10980, 0x109b7, 0x109be, 0x109bf, 0x10a00, 0x10a00, 0x10a10, 0x10a13, 0x10a15, 0x10a17,
                        0x10a19, 0x10a35, 0x10a60, 0x10a7c, 0x10a80, 0x10a9c, 0x10ac0, 0x10ac7, 0x10ac9, 0x10ae4, 0x10b00, 0x10b35, 0x10b40, 0x10b55, 0x10b60, 0x10b72, 0x10b80, 0x10b91, 0x10c00,
                        0x10c48, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x10d00, 0x10d23, 0x10f00, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f45, 0x10fe0, 0x10ff6, 0x11003, 0x11037, 0x11083, 0x110af,
                        0x110d0, 0x110e8, 0x11103, 0x11126, 0x11144, 0x11144, 0x11150, 0x11172, 0x11176, 0x11176, 0x11183, 0x111b2, 0x111c1, 0x111c4, 0x111da, 0x111da, 0x111dc, 0x111dc, 0x11200,
                        0x11211, 0x11213, 0x1122b, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, 0x1128f, 0x1129d, 0x1129f, 0x112a8, 0x112b0, 0x112de, 0x11305, 0x1130c, 0x1130f, 0x11310,
                        0x11313, 0x11328, 0x1132a, 0x11330, 0x11332, 0x11333, 0x11335, 0x11339, 0x1133d, 0x1133d, 0x11350, 0x11350, 0x1135d, 0x11361, 0x11400, 0x11434, 0x11447, 0x1144a, 0x1145f,
                        0x1145f, 0x11480, 0x114af, 0x114c4, 0x114c5, 0x114c7, 0x114c7, 0x11580, 0x115ae, 0x115d8, 0x115db, 0x11600, 0x1162f, 0x11644, 0x11644, 0x11680, 0x116aa, 0x116b8, 0x116b8,
                        0x11700, 0x1171a, 0x11800, 0x1182b, 0x118a0, 0x118df, 0x118ff, 0x118ff, 0x119a0, 0x119a7, 0x119aa, 0x119d0, 0x119e1, 0x119e1, 0x119e3, 0x119e3, 0x11a00, 0x11a00, 0x11a0b,
                        0x11a32, 0x11a3a, 0x11a3a, 0x11a50, 0x11a50, 0x11a5c, 0x11a89, 0x11a9d, 0x11a9d, 0x11ac0, 0x11af8, 0x11c00, 0x11c08, 0x11c0a, 0x11c2e, 0x11c40, 0x11c40, 0x11c72, 0x11c8f,
                        0x11d00, 0x11d06, 0x11d08, 0x11d09, 0x11d0b, 0x11d30, 0x11d46, 0x11d46, 0x11d60, 0x11d65, 0x11d67, 0x11d68, 0x11d6a, 0x11d89, 0x11d98, 0x11d98, 0x11ee0, 0x11ef2, 0x12000,
                        0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x13000, 0x1342e, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16ad0, 0x16aed, 0x16b00, 0x16b2f, 0x16b40, 0x16b43,
                        0x16b63, 0x16b77, 0x16b7d, 0x16b8f, 0x16e40, 0x16e7f, 0x16f00, 0x16f4a, 0x16f50, 0x16f50, 0x16f93, 0x16f9f, 0x16fe0, 0x16fe1, 0x16fe3, 0x16fe3, 0x17000, 0x187f7, 0x18800,
                        0x18af2, 0x1b000, 0x1b11e, 0x1b150, 0x1b152, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, 0x1bc70, 0x1bc7c, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1d400, 0x1d454,
                        0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c3, 0x1d4c5, 0x1d505, 0x1d507,
                        0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c, 0x1d51e, 0x1d539, 0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d552, 0x1d6a5, 0x1d6a8, 0x1d6c0,
                        0x1d6c2, 0x1d6da, 0x1d6dc, 0x1d6fa, 0x1d6fc, 0x1d714, 0x1d716, 0x1d734, 0x1d736, 0x1d74e, 0x1d750, 0x1d76e, 0x1d770, 0x1d788, 0x1d78a, 0x1d7a8, 0x1d7aa, 0x1d7c2, 0x1d7c4,
                        0x1d7cb, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e14e, 0x1e14e, 0x1e2c0, 0x1e2eb, 0x1e800, 0x1e8c4, 0x1e900, 0x1e943, 0x1e94b, 0x1e94b, 0x1ee00, 0x1ee03, 0x1ee05, 0x1ee1f,
                        0x1ee21, 0x1ee22, 0x1ee24, 0x1ee24, 0x1ee27, 0x1ee27, 0x1ee29, 0x1ee32, 0x1ee34, 0x1ee37, 0x1ee39, 0x1ee39, 0x1ee3b, 0x1ee3b, 0x1ee42, 0x1ee42, 0x1ee47, 0x1ee47, 0x1ee49,
                        0x1ee49, 0x1ee4b, 0x1ee4b, 0x1ee4d, 0x1ee4f, 0x1ee51, 0x1ee52, 0x1ee54, 0x1ee54, 0x1ee57, 0x1ee57, 0x1ee59, 0x1ee59, 0x1ee5b, 0x1ee5b, 0x1ee5d, 0x1ee5d, 0x1ee5f, 0x1ee5f,
                        0x1ee61, 0x1ee62, 0x1ee64, 0x1ee64, 0x1ee67, 0x1ee6a, 0x1ee6c, 0x1ee72, 0x1ee74, 0x1ee77, 0x1ee79, 0x1ee7c, 0x1ee7e, 0x1ee7e, 0x1ee80, 0x1ee89, 0x1ee8b, 0x1ee9b, 0x1eea1,
                        0x1eea3, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x20000, 0x2a6d6, 0x2a700, 0x2b734, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, 0x2f800, 0x2fa1d));
    }

    private static void populateIDSB() {
        SET_ENCODINGS.put("IDSB", CodePointSet.createNoDedup(0x2ff0, 0x2ff1, 0x2ff4, 0x2ffb));
    }

    private static void populateIDST() {
        SET_ENCODINGS.put("IDST", CodePointSet.createNoDedup(0x2ff2, 0x2ff3));
    }

    private static void populateIDEO() {
        SET_ENCODINGS.put("Ideo", CodePointSet.createNoDedup(0x3006, 0x3007, 0x3021, 0x3029, 0x3038, 0x303a, 0x3400, 0x4db5, 0x4e00, 0x9fef, 0xf900, 0xfa6d, 0xfa70, 0xfad9, 0x17000, 0x187f7, 0x18800,
                        0x18af2, 0x1b170, 0x1b2fb, 0x20000, 0x2a6d6, 0x2a700, 0x2b734, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, 0x2f800, 0x2fa1d));
    }

    private static void populateJOIN_C() {
        SET_ENCODINGS.put("Join_C", CodePointSet.createNoDedup(0x200c, 0x200d));
    }

    private static void populateLOE() {
        SET_ENCODINGS.put("LOE", CodePointSet.createNoDedup(0x0e40, 0x0e44, 0x0ec0, 0x0ec4, 0x19b5, 0x19b7, 0x19ba, 0x19ba, 0xaab5, 0xaab6, 0xaab9, 0xaab9, 0xaabb, 0xaabc));
    }

    private static void populateLOWER() {
        SET_ENCODINGS.put("Lower", CodePointSet.createNoDedup(0x0061, 0x007a, 0x00aa, 0x00aa, 0x00b5, 0x00b5, 0x00ba, 0x00ba, 0x00df, 0x00f6, 0x00f8, 0x00ff, 0x0101, 0x0101, 0x0103, 0x0103, 0x0105,
                        0x0105, 0x0107, 0x0107, 0x0109, 0x0109, 0x010b, 0x010b, 0x010d, 0x010d, 0x010f, 0x010f, 0x0111, 0x0111, 0x0113, 0x0113, 0x0115, 0x0115, 0x0117, 0x0117, 0x0119, 0x0119, 0x011b,
                        0x011b, 0x011d, 0x011d, 0x011f, 0x011f, 0x0121, 0x0121, 0x0123, 0x0123, 0x0125, 0x0125, 0x0127, 0x0127, 0x0129, 0x0129, 0x012b, 0x012b, 0x012d, 0x012d, 0x012f, 0x012f, 0x0131,
                        0x0131, 0x0133, 0x0133, 0x0135, 0x0135, 0x0137, 0x0138, 0x013a, 0x013a, 0x013c, 0x013c, 0x013e, 0x013e, 0x0140, 0x0140, 0x0142, 0x0142, 0x0144, 0x0144, 0x0146, 0x0146, 0x0148,
                        0x0149, 0x014b, 0x014b, 0x014d, 0x014d, 0x014f, 0x014f, 0x0151, 0x0151, 0x0153, 0x0153, 0x0155, 0x0155, 0x0157, 0x0157, 0x0159, 0x0159, 0x015b, 0x015b, 0x015d, 0x015d, 0x015f,
                        0x015f, 0x0161, 0x0161, 0x0163, 0x0163, 0x0165, 0x0165, 0x0167, 0x0167, 0x0169, 0x0169, 0x016b, 0x016b, 0x016d, 0x016d, 0x016f, 0x016f, 0x0171, 0x0171, 0x0173, 0x0173, 0x0175,
                        0x0175, 0x0177, 0x0177, 0x017a, 0x017a, 0x017c, 0x017c, 0x017e, 0x0180, 0x0183, 0x0183, 0x0185, 0x0185, 0x0188, 0x0188, 0x018c, 0x018d, 0x0192, 0x0192, 0x0195, 0x0195, 0x0199,
                        0x019b, 0x019e, 0x019e, 0x01a1, 0x01a1, 0x01a3, 0x01a3, 0x01a5, 0x01a5, 0x01a8, 0x01a8, 0x01aa, 0x01ab, 0x01ad, 0x01ad, 0x01b0, 0x01b0, 0x01b4, 0x01b4, 0x01b6, 0x01b6, 0x01b9,
                        0x01ba, 0x01bd, 0x01bf, 0x01c6, 0x01c6, 0x01c9, 0x01c9, 0x01cc, 0x01cc, 0x01ce, 0x01ce, 0x01d0, 0x01d0, 0x01d2, 0x01d2, 0x01d4, 0x01d4, 0x01d6, 0x01d6, 0x01d8, 0x01d8, 0x01da,
                        0x01da, 0x01dc, 0x01dd, 0x01df, 0x01df, 0x01e1, 0x01e1, 0x01e3, 0x01e3, 0x01e5, 0x01e5, 0x01e7, 0x01e7, 0x01e9, 0x01e9, 0x01eb, 0x01eb, 0x01ed, 0x01ed, 0x01ef, 0x01f0, 0x01f3,
                        0x01f3, 0x01f5, 0x01f5, 0x01f9, 0x01f9, 0x01fb, 0x01fb, 0x01fd, 0x01fd, 0x01ff, 0x01ff, 0x0201, 0x0201, 0x0203, 0x0203, 0x0205, 0x0205, 0x0207, 0x0207, 0x0209, 0x0209, 0x020b,
                        0x020b, 0x020d, 0x020d, 0x020f, 0x020f, 0x0211, 0x0211, 0x0213, 0x0213, 0x0215, 0x0215, 0x0217, 0x0217, 0x0219, 0x0219, 0x021b, 0x021b, 0x021d, 0x021d, 0x021f, 0x021f, 0x0221,
                        0x0221, 0x0223, 0x0223, 0x0225, 0x0225, 0x0227, 0x0227, 0x0229, 0x0229, 0x022b, 0x022b, 0x022d, 0x022d, 0x022f, 0x022f, 0x0231, 0x0231, 0x0233, 0x0239, 0x023c, 0x023c, 0x023f,
                        0x0240, 0x0242, 0x0242, 0x0247, 0x0247, 0x0249, 0x0249, 0x024b, 0x024b, 0x024d, 0x024d, 0x024f, 0x0293, 0x0295, 0x02b8, 0x02c0, 0x02c1, 0x02e0, 0x02e4, 0x0345, 0x0345, 0x0371,
                        0x0371, 0x0373, 0x0373, 0x0377, 0x0377, 0x037a, 0x037d, 0x0390, 0x0390, 0x03ac, 0x03ce, 0x03d0, 0x03d1, 0x03d5, 0x03d7, 0x03d9, 0x03d9, 0x03db, 0x03db, 0x03dd, 0x03dd, 0x03df,
                        0x03df, 0x03e1, 0x03e1, 0x03e3, 0x03e3, 0x03e5, 0x03e5, 0x03e7, 0x03e7, 0x03e9, 0x03e9, 0x03eb, 0x03eb, 0x03ed, 0x03ed, 0x03ef, 0x03f3, 0x03f5, 0x03f5, 0x03f8, 0x03f8, 0x03fb,
                        0x03fc, 0x0430, 0x045f, 0x0461, 0x0461, 0x0463, 0x0463, 0x0465, 0x0465, 0x0467, 0x0467, 0x0469, 0x0469, 0x046b, 0x046b, 0x046d, 0x046d, 0x046f, 0x046f, 0x0471, 0x0471, 0x0473,
                        0x0473, 0x0475, 0x0475, 0x0477, 0x0477, 0x0479, 0x0479, 0x047b, 0x047b, 0x047d, 0x047d, 0x047f, 0x047f, 0x0481, 0x0481, 0x048b, 0x048b, 0x048d, 0x048d, 0x048f, 0x048f, 0x0491,
                        0x0491, 0x0493, 0x0493, 0x0495, 0x0495, 0x0497, 0x0497, 0x0499, 0x0499, 0x049b, 0x049b, 0x049d, 0x049d, 0x049f, 0x049f, 0x04a1, 0x04a1, 0x04a3, 0x04a3, 0x04a5, 0x04a5, 0x04a7,
                        0x04a7, 0x04a9, 0x04a9, 0x04ab, 0x04ab, 0x04ad, 0x04ad, 0x04af, 0x04af, 0x04b1, 0x04b1, 0x04b3, 0x04b3, 0x04b5, 0x04b5, 0x04b7, 0x04b7, 0x04b9, 0x04b9, 0x04bb, 0x04bb, 0x04bd,
                        0x04bd, 0x04bf, 0x04bf, 0x04c2, 0x04c2, 0x04c4, 0x04c4, 0x04c6, 0x04c6, 0x04c8, 0x04c8, 0x04ca, 0x04ca, 0x04cc, 0x04cc, 0x04ce, 0x04cf, 0x04d1, 0x04d1, 0x04d3, 0x04d3, 0x04d5,
                        0x04d5, 0x04d7, 0x04d7, 0x04d9, 0x04d9, 0x04db, 0x04db, 0x04dd, 0x04dd, 0x04df, 0x04df, 0x04e1, 0x04e1, 0x04e3, 0x04e3, 0x04e5, 0x04e5, 0x04e7, 0x04e7, 0x04e9, 0x04e9, 0x04eb,
                        0x04eb, 0x04ed, 0x04ed, 0x04ef, 0x04ef, 0x04f1, 0x04f1, 0x04f3, 0x04f3, 0x04f5, 0x04f5, 0x04f7, 0x04f7, 0x04f9, 0x04f9, 0x04fb, 0x04fb, 0x04fd, 0x04fd, 0x04ff, 0x04ff, 0x0501,
                        0x0501, 0x0503, 0x0503, 0x0505, 0x0505, 0x0507, 0x0507, 0x0509, 0x0509, 0x050b, 0x050b, 0x050d, 0x050d, 0x050f, 0x050f, 0x0511, 0x0511, 0x0513, 0x0513, 0x0515, 0x0515, 0x0517,
                        0x0517, 0x0519, 0x0519, 0x051b, 0x051b, 0x051d, 0x051d, 0x051f, 0x051f, 0x0521, 0x0521, 0x0523, 0x0523, 0x0525, 0x0525, 0x0527, 0x0527, 0x0529, 0x0529, 0x052b, 0x052b, 0x052d,
                        0x052d, 0x052f, 0x052f, 0x0560, 0x0588, 0x10d0, 0x10fa, 0x10fd, 0x10ff, 0x13f8, 0x13fd, 0x1c80, 0x1c88, 0x1d00, 0x1dbf, 0x1e01, 0x1e01, 0x1e03, 0x1e03, 0x1e05, 0x1e05, 0x1e07,
                        0x1e07, 0x1e09, 0x1e09, 0x1e0b, 0x1e0b, 0x1e0d, 0x1e0d, 0x1e0f, 0x1e0f, 0x1e11, 0x1e11, 0x1e13, 0x1e13, 0x1e15, 0x1e15, 0x1e17, 0x1e17, 0x1e19, 0x1e19, 0x1e1b, 0x1e1b, 0x1e1d,
                        0x1e1d, 0x1e1f, 0x1e1f, 0x1e21, 0x1e21, 0x1e23, 0x1e23, 0x1e25, 0x1e25, 0x1e27, 0x1e27, 0x1e29, 0x1e29, 0x1e2b, 0x1e2b, 0x1e2d, 0x1e2d, 0x1e2f, 0x1e2f, 0x1e31, 0x1e31, 0x1e33,
                        0x1e33, 0x1e35, 0x1e35, 0x1e37, 0x1e37, 0x1e39, 0x1e39, 0x1e3b, 0x1e3b, 0x1e3d, 0x1e3d, 0x1e3f, 0x1e3f, 0x1e41, 0x1e41, 0x1e43, 0x1e43, 0x1e45, 0x1e45, 0x1e47, 0x1e47, 0x1e49,
                        0x1e49, 0x1e4b, 0x1e4b, 0x1e4d, 0x1e4d, 0x1e4f, 0x1e4f, 0x1e51, 0x1e51, 0x1e53, 0x1e53, 0x1e55, 0x1e55, 0x1e57, 0x1e57, 0x1e59, 0x1e59, 0x1e5b, 0x1e5b, 0x1e5d, 0x1e5d, 0x1e5f,
                        0x1e5f, 0x1e61, 0x1e61, 0x1e63, 0x1e63, 0x1e65, 0x1e65, 0x1e67, 0x1e67, 0x1e69, 0x1e69, 0x1e6b, 0x1e6b, 0x1e6d, 0x1e6d, 0x1e6f, 0x1e6f, 0x1e71, 0x1e71, 0x1e73, 0x1e73, 0x1e75,
                        0x1e75, 0x1e77, 0x1e77, 0x1e79, 0x1e79, 0x1e7b, 0x1e7b, 0x1e7d, 0x1e7d, 0x1e7f, 0x1e7f, 0x1e81, 0x1e81, 0x1e83, 0x1e83, 0x1e85, 0x1e85, 0x1e87, 0x1e87, 0x1e89, 0x1e89, 0x1e8b,
                        0x1e8b, 0x1e8d, 0x1e8d, 0x1e8f, 0x1e8f, 0x1e91, 0x1e91, 0x1e93, 0x1e93, 0x1e95, 0x1e9d, 0x1e9f, 0x1e9f, 0x1ea1, 0x1ea1, 0x1ea3, 0x1ea3, 0x1ea5, 0x1ea5, 0x1ea7, 0x1ea7, 0x1ea9,
                        0x1ea9, 0x1eab, 0x1eab, 0x1ead, 0x1ead, 0x1eaf, 0x1eaf, 0x1eb1, 0x1eb1, 0x1eb3, 0x1eb3, 0x1eb5, 0x1eb5, 0x1eb7, 0x1eb7, 0x1eb9, 0x1eb9, 0x1ebb, 0x1ebb, 0x1ebd, 0x1ebd, 0x1ebf,
                        0x1ebf, 0x1ec1, 0x1ec1, 0x1ec3, 0x1ec3, 0x1ec5, 0x1ec5, 0x1ec7, 0x1ec7, 0x1ec9, 0x1ec9, 0x1ecb, 0x1ecb, 0x1ecd, 0x1ecd, 0x1ecf, 0x1ecf, 0x1ed1, 0x1ed1, 0x1ed3, 0x1ed3, 0x1ed5,
                        0x1ed5, 0x1ed7, 0x1ed7, 0x1ed9, 0x1ed9, 0x1edb, 0x1edb, 0x1edd, 0x1edd, 0x1edf, 0x1edf, 0x1ee1, 0x1ee1, 0x1ee3, 0x1ee3, 0x1ee5, 0x1ee5, 0x1ee7, 0x1ee7, 0x1ee9, 0x1ee9, 0x1eeb,
                        0x1eeb, 0x1eed, 0x1eed, 0x1eef, 0x1eef, 0x1ef1, 0x1ef1, 0x1ef3, 0x1ef3, 0x1ef5, 0x1ef5, 0x1ef7, 0x1ef7, 0x1ef9, 0x1ef9, 0x1efb, 0x1efb, 0x1efd, 0x1efd, 0x1eff, 0x1f07, 0x1f10,
                        0x1f15, 0x1f20, 0x1f27, 0x1f30, 0x1f37, 0x1f40, 0x1f45, 0x1f50, 0x1f57, 0x1f60, 0x1f67, 0x1f70, 0x1f7d, 0x1f80, 0x1f87, 0x1f90, 0x1f97, 0x1fa0, 0x1fa7, 0x1fb0, 0x1fb4, 0x1fb6,
                        0x1fb7, 0x1fbe, 0x1fbe, 0x1fc2, 0x1fc4, 0x1fc6, 0x1fc7, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fd7, 0x1fe0, 0x1fe7, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ff7, 0x2071, 0x2071, 0x207f, 0x207f, 0x2090,
                        0x209c, 0x210a, 0x210a, 0x210e, 0x210f, 0x2113, 0x2113, 0x212f, 0x212f, 0x2134, 0x2134, 0x2139, 0x2139, 0x213c, 0x213d, 0x2146, 0x2149, 0x214e, 0x214e, 0x2170, 0x217f, 0x2184,
                        0x2184, 0x24d0, 0x24e9, 0x2c30, 0x2c5e, 0x2c61, 0x2c61, 0x2c65, 0x2c66, 0x2c68, 0x2c68, 0x2c6a, 0x2c6a, 0x2c6c, 0x2c6c, 0x2c71, 0x2c71, 0x2c73, 0x2c74, 0x2c76, 0x2c7d, 0x2c81,
                        0x2c81, 0x2c83, 0x2c83, 0x2c85, 0x2c85, 0x2c87, 0x2c87, 0x2c89, 0x2c89, 0x2c8b, 0x2c8b, 0x2c8d, 0x2c8d, 0x2c8f, 0x2c8f, 0x2c91, 0x2c91, 0x2c93, 0x2c93, 0x2c95, 0x2c95, 0x2c97,
                        0x2c97, 0x2c99, 0x2c99, 0x2c9b, 0x2c9b, 0x2c9d, 0x2c9d, 0x2c9f, 0x2c9f, 0x2ca1, 0x2ca1, 0x2ca3, 0x2ca3, 0x2ca5, 0x2ca5, 0x2ca7, 0x2ca7, 0x2ca9, 0x2ca9, 0x2cab, 0x2cab, 0x2cad,
                        0x2cad, 0x2caf, 0x2caf, 0x2cb1, 0x2cb1, 0x2cb3, 0x2cb3, 0x2cb5, 0x2cb5, 0x2cb7, 0x2cb7, 0x2cb9, 0x2cb9, 0x2cbb, 0x2cbb, 0x2cbd, 0x2cbd, 0x2cbf, 0x2cbf, 0x2cc1, 0x2cc1, 0x2cc3,
                        0x2cc3, 0x2cc5, 0x2cc5, 0x2cc7, 0x2cc7, 0x2cc9, 0x2cc9, 0x2ccb, 0x2ccb, 0x2ccd, 0x2ccd, 0x2ccf, 0x2ccf, 0x2cd1, 0x2cd1, 0x2cd3, 0x2cd3, 0x2cd5, 0x2cd5, 0x2cd7, 0x2cd7, 0x2cd9,
                        0x2cd9, 0x2cdb, 0x2cdb, 0x2cdd, 0x2cdd, 0x2cdf, 0x2cdf, 0x2ce1, 0x2ce1, 0x2ce3, 0x2ce4, 0x2cec, 0x2cec, 0x2cee, 0x2cee, 0x2cf3, 0x2cf3, 0x2d00, 0x2d25, 0x2d27, 0x2d27, 0x2d2d,
                        0x2d2d, 0xa641, 0xa641, 0xa643, 0xa643, 0xa645, 0xa645, 0xa647, 0xa647, 0xa649, 0xa649, 0xa64b, 0xa64b, 0xa64d, 0xa64d, 0xa64f, 0xa64f, 0xa651, 0xa651, 0xa653, 0xa653, 0xa655,
                        0xa655, 0xa657, 0xa657, 0xa659, 0xa659, 0xa65b, 0xa65b, 0xa65d, 0xa65d, 0xa65f, 0xa65f, 0xa661, 0xa661, 0xa663, 0xa663, 0xa665, 0xa665, 0xa667, 0xa667, 0xa669, 0xa669, 0xa66b,
                        0xa66b, 0xa66d, 0xa66d, 0xa681, 0xa681, 0xa683, 0xa683, 0xa685, 0xa685, 0xa687, 0xa687, 0xa689, 0xa689, 0xa68b, 0xa68b, 0xa68d, 0xa68d, 0xa68f, 0xa68f, 0xa691, 0xa691, 0xa693,
                        0xa693, 0xa695, 0xa695, 0xa697, 0xa697, 0xa699, 0xa699, 0xa69b, 0xa69d, 0xa723, 0xa723, 0xa725, 0xa725, 0xa727, 0xa727, 0xa729, 0xa729, 0xa72b, 0xa72b, 0xa72d, 0xa72d, 0xa72f,
                        0xa731, 0xa733, 0xa733, 0xa735, 0xa735, 0xa737, 0xa737, 0xa739, 0xa739, 0xa73b, 0xa73b, 0xa73d, 0xa73d, 0xa73f, 0xa73f, 0xa741, 0xa741, 0xa743, 0xa743, 0xa745, 0xa745, 0xa747,
                        0xa747, 0xa749, 0xa749, 0xa74b, 0xa74b, 0xa74d, 0xa74d, 0xa74f, 0xa74f, 0xa751, 0xa751, 0xa753, 0xa753, 0xa755, 0xa755, 0xa757, 0xa757, 0xa759, 0xa759, 0xa75b, 0xa75b, 0xa75d,
                        0xa75d, 0xa75f, 0xa75f, 0xa761, 0xa761, 0xa763, 0xa763, 0xa765, 0xa765, 0xa767, 0xa767, 0xa769, 0xa769, 0xa76b, 0xa76b, 0xa76d, 0xa76d, 0xa76f, 0xa778, 0xa77a, 0xa77a, 0xa77c,
                        0xa77c, 0xa77f, 0xa77f, 0xa781, 0xa781, 0xa783, 0xa783, 0xa785, 0xa785, 0xa787, 0xa787, 0xa78c, 0xa78c, 0xa78e, 0xa78e, 0xa791, 0xa791, 0xa793, 0xa795, 0xa797, 0xa797, 0xa799,
                        0xa799, 0xa79b, 0xa79b, 0xa79d, 0xa79d, 0xa79f, 0xa79f, 0xa7a1, 0xa7a1, 0xa7a3, 0xa7a3, 0xa7a5, 0xa7a5, 0xa7a7, 0xa7a7, 0xa7a9, 0xa7a9, 0xa7af, 0xa7af, 0xa7b5, 0xa7b5, 0xa7b7,
                        0xa7b7, 0xa7b9, 0xa7b9, 0xa7bb, 0xa7bb, 0xa7bd, 0xa7bd, 0xa7bf, 0xa7bf, 0xa7c3, 0xa7c3, 0xa7f8, 0xa7fa, 0xab30, 0xab5a, 0xab5c, 0xab67, 0xab70, 0xabbf, 0xfb00, 0xfb06, 0xfb13,
                        0xfb17, 0xff41, 0xff5a, 0x10428, 0x1044f, 0x104d8, 0x104fb, 0x10cc0, 0x10cf2, 0x118c0, 0x118df, 0x16e60, 0x16e7f, 0x1d41a, 0x1d433, 0x1d44e, 0x1d454, 0x1d456, 0x1d467, 0x1d482,
                        0x1d49b, 0x1d4b6, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c3, 0x1d4c5, 0x1d4cf, 0x1d4ea, 0x1d503, 0x1d51e, 0x1d537, 0x1d552, 0x1d56b, 0x1d586, 0x1d59f, 0x1d5ba, 0x1d5d3,
                        0x1d5ee, 0x1d607, 0x1d622, 0x1d63b, 0x1d656, 0x1d66f, 0x1d68a, 0x1d6a5, 0x1d6c2, 0x1d6da, 0x1d6dc, 0x1d6e1, 0x1d6fc, 0x1d714, 0x1d716, 0x1d71b, 0x1d736, 0x1d74e, 0x1d750,
                        0x1d755, 0x1d770, 0x1d788, 0x1d78a, 0x1d78f, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7c9, 0x1d7cb, 0x1d7cb, 0x1e922, 0x1e943));
    }

    private static void populateMATH() {
        SET_ENCODINGS.put("Math", CodePointSet.createNoDedup(0x002b, 0x002b, 0x003c, 0x003e, 0x005e, 0x005e, 0x007c, 0x007c, 0x007e, 0x007e, 0x00ac, 0x00ac, 0x00b1, 0x00b1, 0x00d7, 0x00d7, 0x00f7,
                        0x00f7, 0x03d0, 0x03d2, 0x03d5, 0x03d5, 0x03f0, 0x03f1, 0x03f4, 0x03f6, 0x0606, 0x0608, 0x2016, 0x2016, 0x2032, 0x2034, 0x2040, 0x2040, 0x2044, 0x2044, 0x2052, 0x2052, 0x2061,
                        0x2064, 0x207a, 0x207e, 0x208a, 0x208e, 0x20d0, 0x20dc, 0x20e1, 0x20e1, 0x20e5, 0x20e6, 0x20eb, 0x20ef, 0x2102, 0x2102, 0x2107, 0x2107, 0x210a, 0x2113, 0x2115, 0x2115, 0x2118,
                        0x211d, 0x2124, 0x2124, 0x2128, 0x2129, 0x212c, 0x212d, 0x212f, 0x2131, 0x2133, 0x2138, 0x213c, 0x2149, 0x214b, 0x214b, 0x2190, 0x21a7, 0x21a9, 0x21ae, 0x21b0, 0x21b1, 0x21b6,
                        0x21b7, 0x21bc, 0x21db, 0x21dd, 0x21dd, 0x21e4, 0x21e5, 0x21f4, 0x22ff, 0x2308, 0x230b, 0x2320, 0x2321, 0x237c, 0x237c, 0x239b, 0x23b5, 0x23b7, 0x23b7, 0x23d0, 0x23d0, 0x23dc,
                        0x23e2, 0x25a0, 0x25a1, 0x25ae, 0x25b7, 0x25bc, 0x25c1, 0x25c6, 0x25c7, 0x25ca, 0x25cb, 0x25cf, 0x25d3, 0x25e2, 0x25e2, 0x25e4, 0x25e4, 0x25e7, 0x25ec, 0x25f8, 0x25ff, 0x2605,
                        0x2606, 0x2640, 0x2640, 0x2642, 0x2642, 0x2660, 0x2663, 0x266d, 0x266f, 0x27c0, 0x27ff, 0x2900, 0x2aff, 0x2b30, 0x2b44, 0x2b47, 0x2b4c, 0xfb29, 0xfb29, 0xfe61, 0xfe66, 0xfe68,
                        0xfe68, 0xff0b, 0xff0b, 0xff1c, 0xff1e, 0xff3c, 0xff3c, 0xff3e, 0xff3e, 0xff5c, 0xff5c, 0xff5e, 0xff5e, 0xffe2, 0xffe2, 0xffe9, 0xffec, 0x1d400, 0x1d454, 0x1d456, 0x1d49c,
                        0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c3, 0x1d4c5, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d,
                        0x1d514, 0x1d516, 0x1d51c, 0x1d51e, 0x1d539, 0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d552, 0x1d6a5, 0x1d6a8, 0x1d7cb, 0x1d7ce, 0x1d7ff,
                        0x1ee00, 0x1ee03, 0x1ee05, 0x1ee1f, 0x1ee21, 0x1ee22, 0x1ee24, 0x1ee24, 0x1ee27, 0x1ee27, 0x1ee29, 0x1ee32, 0x1ee34, 0x1ee37, 0x1ee39, 0x1ee39, 0x1ee3b, 0x1ee3b, 0x1ee42,
                        0x1ee42, 0x1ee47, 0x1ee47, 0x1ee49, 0x1ee49, 0x1ee4b, 0x1ee4b, 0x1ee4d, 0x1ee4f, 0x1ee51, 0x1ee52, 0x1ee54, 0x1ee54, 0x1ee57, 0x1ee57, 0x1ee59, 0x1ee59, 0x1ee5b, 0x1ee5b,
                        0x1ee5d, 0x1ee5d, 0x1ee5f, 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64, 0x1ee64, 0x1ee67, 0x1ee6a, 0x1ee6c, 0x1ee72, 0x1ee74, 0x1ee77, 0x1ee79, 0x1ee7c, 0x1ee7e, 0x1ee7e, 0x1ee80,
                        0x1ee89, 0x1ee8b, 0x1ee9b, 0x1eea1, 0x1eea3, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x1eef0, 0x1eef1));
    }

    private static void populateNCHAR() {
        SET_ENCODINGS.put("NChar",
                        CodePointSet.createNoDedup(0xfdd0, 0xfdef, 0xfffe, 0xffff, 0x1fffe, 0x1ffff, 0x2fffe, 0x2ffff, 0x3fffe, 0x3ffff, 0x4fffe, 0x4ffff, 0x5fffe, 0x5ffff, 0x6fffe, 0x6ffff, 0x7fffe,
                                        0x7ffff, 0x8fffe, 0x8ffff, 0x9fffe, 0x9ffff, 0xafffe, 0xaffff, 0xbfffe, 0xbffff, 0xcfffe, 0xcffff, 0xdfffe, 0xdffff, 0xefffe, 0xeffff, 0xffffe, 0xfffff,
                                        0x10fffe, 0x10ffff));
    }

    private static void populatePAT_SYN() {
        SET_ENCODINGS.put("Pat_Syn",
                        CodePointSet.createNoDedup(0x0021, 0x002f, 0x003a, 0x0040, 0x005b, 0x005e, 0x0060, 0x0060, 0x007b, 0x007e, 0x00a1, 0x00a7, 0x00a9, 0x00a9, 0x00ab, 0x00ac, 0x00ae, 0x00ae,
                                        0x00b0, 0x00b1, 0x00b6, 0x00b6, 0x00bb, 0x00bb, 0x00bf, 0x00bf, 0x00d7, 0x00d7, 0x00f7, 0x00f7, 0x2010, 0x2027, 0x2030, 0x203e, 0x2041, 0x2053, 0x2055, 0x205e,
                                        0x2190, 0x245f, 0x2500, 0x2775, 0x2794, 0x2bff, 0x2e00, 0x2e7f, 0x3001, 0x3003, 0x3008, 0x3020, 0x3030, 0x3030, 0xfd3e, 0xfd3f, 0xfe45, 0xfe46));
    }

    private static void populatePAT_WS() {
        SET_ENCODINGS.put("Pat_WS", CodePointSet.createNoDedup(0x0009, 0x000d, 0x0020, 0x0020, 0x0085, 0x0085, 0x200e, 0x200f, 0x2028, 0x2029));
    }

    private static void populateQMARK() {
        SET_ENCODINGS.put("QMark", CodePointSet.createNoDedup(0x0022, 0x0022, 0x0027, 0x0027, 0x00ab, 0x00ab, 0x00bb, 0x00bb, 0x2018, 0x201f, 0x2039, 0x203a, 0x2e42, 0x2e42, 0x300c, 0x300f, 0x301d,
                        0x301f, 0xfe41, 0xfe44, 0xff02, 0xff02, 0xff07, 0xff07, 0xff62, 0xff63));
    }

    private static void populateRI() {
        SET_ENCODINGS.put("RI", CodePointSet.createNoDedup(0x1f1e6, 0x1f1ff));
    }

    private static void populateRADICAL() {
        SET_ENCODINGS.put("Radical", CodePointSet.createNoDedup(0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5));
    }

    private static void populateSD() {
        SET_ENCODINGS.put("SD",
                        CodePointSet.createNoDedup(0x0069, 0x006a, 0x012f, 0x012f, 0x0249, 0x0249, 0x0268, 0x0268, 0x029d, 0x029d, 0x02b2, 0x02b2, 0x03f3, 0x03f3, 0x0456, 0x0456, 0x0458, 0x0458,
                                        0x1d62, 0x1d62, 0x1d96, 0x1d96, 0x1da4, 0x1da4, 0x1da8, 0x1da8, 0x1e2d, 0x1e2d, 0x1ecb, 0x1ecb, 0x2071, 0x2071, 0x2148, 0x2149, 0x2c7c, 0x2c7c, 0x1d422,
                                        0x1d423, 0x1d456, 0x1d457, 0x1d48a, 0x1d48b, 0x1d4be, 0x1d4bf, 0x1d4f2, 0x1d4f3, 0x1d526, 0x1d527, 0x1d55a, 0x1d55b, 0x1d58e, 0x1d58f, 0x1d5c2, 0x1d5c3,
                                        0x1d5f6, 0x1d5f7, 0x1d62a, 0x1d62b, 0x1d65e, 0x1d65f, 0x1d692, 0x1d693));
    }

    private static void populateSTERM() {
        SET_ENCODINGS.put("STerm",
                        CodePointSet.createNoDedup(0x0021, 0x0021, 0x002e, 0x002e, 0x003f, 0x003f, 0x0589, 0x0589, 0x061e, 0x061f, 0x06d4, 0x06d4, 0x0700, 0x0702, 0x07f9, 0x07f9, 0x0837, 0x0837,
                                        0x0839, 0x0839, 0x083d, 0x083e, 0x0964, 0x0965, 0x104a, 0x104b, 0x1362, 0x1362, 0x1367, 0x1368, 0x166e, 0x166e, 0x1735, 0x1736, 0x1803, 0x1803, 0x1809, 0x1809,
                                        0x1944, 0x1945, 0x1aa8, 0x1aab, 0x1b5a, 0x1b5b, 0x1b5e, 0x1b5f, 0x1c3b, 0x1c3c, 0x1c7e, 0x1c7f, 0x203c, 0x203d, 0x2047, 0x2049, 0x2e2e, 0x2e2e, 0x2e3c, 0x2e3c,
                                        0x3002, 0x3002, 0xa4ff, 0xa4ff, 0xa60e, 0xa60f, 0xa6f3, 0xa6f3, 0xa6f7, 0xa6f7, 0xa876, 0xa877, 0xa8ce, 0xa8cf, 0xa92f, 0xa92f, 0xa9c8, 0xa9c9, 0xaa5d, 0xaa5f,
                                        0xaaf0, 0xaaf1, 0xabeb, 0xabeb, 0xfe52, 0xfe52, 0xfe56, 0xfe57, 0xff01, 0xff01, 0xff0e, 0xff0e, 0xff1f, 0xff1f, 0xff61, 0xff61, 0x10a56, 0x10a57, 0x10f55,
                                        0x10f59, 0x11047, 0x11048, 0x110be, 0x110c1, 0x11141, 0x11143, 0x111c5, 0x111c6, 0x111cd, 0x111cd, 0x111de, 0x111df, 0x11238, 0x11239, 0x1123b, 0x1123c,
                                        0x112a9, 0x112a9, 0x1144b, 0x1144c, 0x115c2, 0x115c3, 0x115c9, 0x115d7, 0x11641, 0x11642, 0x1173c, 0x1173e, 0x11a42, 0x11a43, 0x11a9b, 0x11a9c, 0x11c41,
                                        0x11c42, 0x11ef7, 0x11ef8, 0x16a6e, 0x16a6f, 0x16af5, 0x16af5, 0x16b37, 0x16b38, 0x16b44, 0x16b44, 0x16e98, 0x16e98, 0x1bc9f, 0x1bc9f, 0x1da88, 0x1da88));
    }

    private static void populateTERM() {
        SET_ENCODINGS.put("Term", CodePointSet.createNoDedup(0x0021, 0x0021, 0x002c, 0x002c, 0x002e, 0x002e, 0x003a, 0x003b, 0x003f, 0x003f, 0x037e, 0x037e, 0x0387, 0x0387, 0x0589, 0x0589, 0x05c3,
                        0x05c3, 0x060c, 0x060c, 0x061b, 0x061b, 0x061e, 0x061f, 0x06d4, 0x06d4, 0x0700, 0x070a, 0x070c, 0x070c, 0x07f8, 0x07f9, 0x0830, 0x083e, 0x085e, 0x085e, 0x0964, 0x0965, 0x0e5a,
                        0x0e5b, 0x0f08, 0x0f08, 0x0f0d, 0x0f12, 0x104a, 0x104b, 0x1361, 0x1368, 0x166e, 0x166e, 0x16eb, 0x16ed, 0x1735, 0x1736, 0x17d4, 0x17d6, 0x17da, 0x17da, 0x1802, 0x1805, 0x1808,
                        0x1809, 0x1944, 0x1945, 0x1aa8, 0x1aab, 0x1b5a, 0x1b5b, 0x1b5d, 0x1b5f, 0x1c3b, 0x1c3f, 0x1c7e, 0x1c7f, 0x203c, 0x203d, 0x2047, 0x2049, 0x2e2e, 0x2e2e, 0x2e3c, 0x2e3c, 0x2e41,
                        0x2e41, 0x2e4c, 0x2e4c, 0x2e4e, 0x2e4f, 0x3001, 0x3002, 0xa4fe, 0xa4ff, 0xa60d, 0xa60f, 0xa6f3, 0xa6f7, 0xa876, 0xa877, 0xa8ce, 0xa8cf, 0xa92f, 0xa92f, 0xa9c7, 0xa9c9, 0xaa5d,
                        0xaa5f, 0xaadf, 0xaadf, 0xaaf0, 0xaaf1, 0xabeb, 0xabeb, 0xfe50, 0xfe52, 0xfe54, 0xfe57, 0xff01, 0xff01, 0xff0c, 0xff0c, 0xff0e, 0xff0e, 0xff1a, 0xff1b, 0xff1f, 0xff1f, 0xff61,
                        0xff61, 0xff64, 0xff64, 0x1039f, 0x1039f, 0x103d0, 0x103d0, 0x10857, 0x10857, 0x1091f, 0x1091f, 0x10a56, 0x10a57, 0x10af0, 0x10af5, 0x10b3a, 0x10b3f, 0x10b99, 0x10b9c, 0x10f55,
                        0x10f59, 0x11047, 0x1104d, 0x110be, 0x110c1, 0x11141, 0x11143, 0x111c5, 0x111c6, 0x111cd, 0x111cd, 0x111de, 0x111df, 0x11238, 0x1123c, 0x112a9, 0x112a9, 0x1144b, 0x1144d,
                        0x1145b, 0x1145b, 0x115c2, 0x115c5, 0x115c9, 0x115d7, 0x11641, 0x11642, 0x1173c, 0x1173e, 0x11a42, 0x11a43, 0x11a9b, 0x11a9c, 0x11aa1, 0x11aa2, 0x11c41, 0x11c43, 0x11c71,
                        0x11c71, 0x11ef7, 0x11ef8, 0x12470, 0x12474, 0x16a6e, 0x16a6f, 0x16af5, 0x16af5, 0x16b37, 0x16b39, 0x16b44, 0x16b44, 0x16e97, 0x16e98, 0x1bc9f, 0x1bc9f, 0x1da87, 0x1da8a));
    }

    private static void populateUIDEO() {
        SET_ENCODINGS.put("UIdeo", CodePointSet.createNoDedup(0x3400, 0x4db5, 0x4e00, 0x9fef, 0xfa0e, 0xfa0f, 0xfa11, 0xfa11, 0xfa13, 0xfa14, 0xfa1f, 0xfa1f, 0xfa21, 0xfa21, 0xfa23, 0xfa24, 0xfa27,
                        0xfa29, 0x20000, 0x2a6d6, 0x2a700, 0x2b734, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0));
    }

    private static void populateUPPER() {
        SET_ENCODINGS.put("Upper", CodePointSet.createNoDedup(0x0041, 0x005a, 0x00c0, 0x00d6, 0x00d8, 0x00de, 0x0100, 0x0100, 0x0102, 0x0102, 0x0104, 0x0104, 0x0106, 0x0106, 0x0108, 0x0108, 0x010a,
                        0x010a, 0x010c, 0x010c, 0x010e, 0x010e, 0x0110, 0x0110, 0x0112, 0x0112, 0x0114, 0x0114, 0x0116, 0x0116, 0x0118, 0x0118, 0x011a, 0x011a, 0x011c, 0x011c, 0x011e, 0x011e, 0x0120,
                        0x0120, 0x0122, 0x0122, 0x0124, 0x0124, 0x0126, 0x0126, 0x0128, 0x0128, 0x012a, 0x012a, 0x012c, 0x012c, 0x012e, 0x012e, 0x0130, 0x0130, 0x0132, 0x0132, 0x0134, 0x0134, 0x0136,
                        0x0136, 0x0139, 0x0139, 0x013b, 0x013b, 0x013d, 0x013d, 0x013f, 0x013f, 0x0141, 0x0141, 0x0143, 0x0143, 0x0145, 0x0145, 0x0147, 0x0147, 0x014a, 0x014a, 0x014c, 0x014c, 0x014e,
                        0x014e, 0x0150, 0x0150, 0x0152, 0x0152, 0x0154, 0x0154, 0x0156, 0x0156, 0x0158, 0x0158, 0x015a, 0x015a, 0x015c, 0x015c, 0x015e, 0x015e, 0x0160, 0x0160, 0x0162, 0x0162, 0x0164,
                        0x0164, 0x0166, 0x0166, 0x0168, 0x0168, 0x016a, 0x016a, 0x016c, 0x016c, 0x016e, 0x016e, 0x0170, 0x0170, 0x0172, 0x0172, 0x0174, 0x0174, 0x0176, 0x0176, 0x0178, 0x0179, 0x017b,
                        0x017b, 0x017d, 0x017d, 0x0181, 0x0182, 0x0184, 0x0184, 0x0186, 0x0187, 0x0189, 0x018b, 0x018e, 0x0191, 0x0193, 0x0194, 0x0196, 0x0198, 0x019c, 0x019d, 0x019f, 0x01a0, 0x01a2,
                        0x01a2, 0x01a4, 0x01a4, 0x01a6, 0x01a7, 0x01a9, 0x01a9, 0x01ac, 0x01ac, 0x01ae, 0x01af, 0x01b1, 0x01b3, 0x01b5, 0x01b5, 0x01b7, 0x01b8, 0x01bc, 0x01bc, 0x01c4, 0x01c4, 0x01c7,
                        0x01c7, 0x01ca, 0x01ca, 0x01cd, 0x01cd, 0x01cf, 0x01cf, 0x01d1, 0x01d1, 0x01d3, 0x01d3, 0x01d5, 0x01d5, 0x01d7, 0x01d7, 0x01d9, 0x01d9, 0x01db, 0x01db, 0x01de, 0x01de, 0x01e0,
                        0x01e0, 0x01e2, 0x01e2, 0x01e4, 0x01e4, 0x01e6, 0x01e6, 0x01e8, 0x01e8, 0x01ea, 0x01ea, 0x01ec, 0x01ec, 0x01ee, 0x01ee, 0x01f1, 0x01f1, 0x01f4, 0x01f4, 0x01f6, 0x01f8, 0x01fa,
                        0x01fa, 0x01fc, 0x01fc, 0x01fe, 0x01fe, 0x0200, 0x0200, 0x0202, 0x0202, 0x0204, 0x0204, 0x0206, 0x0206, 0x0208, 0x0208, 0x020a, 0x020a, 0x020c, 0x020c, 0x020e, 0x020e, 0x0210,
                        0x0210, 0x0212, 0x0212, 0x0214, 0x0214, 0x0216, 0x0216, 0x0218, 0x0218, 0x021a, 0x021a, 0x021c, 0x021c, 0x021e, 0x021e, 0x0220, 0x0220, 0x0222, 0x0222, 0x0224, 0x0224, 0x0226,
                        0x0226, 0x0228, 0x0228, 0x022a, 0x022a, 0x022c, 0x022c, 0x022e, 0x022e, 0x0230, 0x0230, 0x0232, 0x0232, 0x023a, 0x023b, 0x023d, 0x023e, 0x0241, 0x0241, 0x0243, 0x0246, 0x0248,
                        0x0248, 0x024a, 0x024a, 0x024c, 0x024c, 0x024e, 0x024e, 0x0370, 0x0370, 0x0372, 0x0372, 0x0376, 0x0376, 0x037f, 0x037f, 0x0386, 0x0386, 0x0388, 0x038a, 0x038c, 0x038c, 0x038e,
                        0x038f, 0x0391, 0x03a1, 0x03a3, 0x03ab, 0x03cf, 0x03cf, 0x03d2, 0x03d4, 0x03d8, 0x03d8, 0x03da, 0x03da, 0x03dc, 0x03dc, 0x03de, 0x03de, 0x03e0, 0x03e0, 0x03e2, 0x03e2, 0x03e4,
                        0x03e4, 0x03e6, 0x03e6, 0x03e8, 0x03e8, 0x03ea, 0x03ea, 0x03ec, 0x03ec, 0x03ee, 0x03ee, 0x03f4, 0x03f4, 0x03f7, 0x03f7, 0x03f9, 0x03fa, 0x03fd, 0x042f, 0x0460, 0x0460, 0x0462,
                        0x0462, 0x0464, 0x0464, 0x0466, 0x0466, 0x0468, 0x0468, 0x046a, 0x046a, 0x046c, 0x046c, 0x046e, 0x046e, 0x0470, 0x0470, 0x0472, 0x0472, 0x0474, 0x0474, 0x0476, 0x0476, 0x0478,
                        0x0478, 0x047a, 0x047a, 0x047c, 0x047c, 0x047e, 0x047e, 0x0480, 0x0480, 0x048a, 0x048a, 0x048c, 0x048c, 0x048e, 0x048e, 0x0490, 0x0490, 0x0492, 0x0492, 0x0494, 0x0494, 0x0496,
                        0x0496, 0x0498, 0x0498, 0x049a, 0x049a, 0x049c, 0x049c, 0x049e, 0x049e, 0x04a0, 0x04a0, 0x04a2, 0x04a2, 0x04a4, 0x04a4, 0x04a6, 0x04a6, 0x04a8, 0x04a8, 0x04aa, 0x04aa, 0x04ac,
                        0x04ac, 0x04ae, 0x04ae, 0x04b0, 0x04b0, 0x04b2, 0x04b2, 0x04b4, 0x04b4, 0x04b6, 0x04b6, 0x04b8, 0x04b8, 0x04ba, 0x04ba, 0x04bc, 0x04bc, 0x04be, 0x04be, 0x04c0, 0x04c1, 0x04c3,
                        0x04c3, 0x04c5, 0x04c5, 0x04c7, 0x04c7, 0x04c9, 0x04c9, 0x04cb, 0x04cb, 0x04cd, 0x04cd, 0x04d0, 0x04d0, 0x04d2, 0x04d2, 0x04d4, 0x04d4, 0x04d6, 0x04d6, 0x04d8, 0x04d8, 0x04da,
                        0x04da, 0x04dc, 0x04dc, 0x04de, 0x04de, 0x04e0, 0x04e0, 0x04e2, 0x04e2, 0x04e4, 0x04e4, 0x04e6, 0x04e6, 0x04e8, 0x04e8, 0x04ea, 0x04ea, 0x04ec, 0x04ec, 0x04ee, 0x04ee, 0x04f0,
                        0x04f0, 0x04f2, 0x04f2, 0x04f4, 0x04f4, 0x04f6, 0x04f6, 0x04f8, 0x04f8, 0x04fa, 0x04fa, 0x04fc, 0x04fc, 0x04fe, 0x04fe, 0x0500, 0x0500, 0x0502, 0x0502, 0x0504, 0x0504, 0x0506,
                        0x0506, 0x0508, 0x0508, 0x050a, 0x050a, 0x050c, 0x050c, 0x050e, 0x050e, 0x0510, 0x0510, 0x0512, 0x0512, 0x0514, 0x0514, 0x0516, 0x0516, 0x0518, 0x0518, 0x051a, 0x051a, 0x051c,
                        0x051c, 0x051e, 0x051e, 0x0520, 0x0520, 0x0522, 0x0522, 0x0524, 0x0524, 0x0526, 0x0526, 0x0528, 0x0528, 0x052a, 0x052a, 0x052c, 0x052c, 0x052e, 0x052e, 0x0531, 0x0556, 0x10a0,
                        0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x13a0, 0x13f5, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1e00, 0x1e00, 0x1e02, 0x1e02, 0x1e04, 0x1e04, 0x1e06, 0x1e06, 0x1e08, 0x1e08, 0x1e0a,
                        0x1e0a, 0x1e0c, 0x1e0c, 0x1e0e, 0x1e0e, 0x1e10, 0x1e10, 0x1e12, 0x1e12, 0x1e14, 0x1e14, 0x1e16, 0x1e16, 0x1e18, 0x1e18, 0x1e1a, 0x1e1a, 0x1e1c, 0x1e1c, 0x1e1e, 0x1e1e, 0x1e20,
                        0x1e20, 0x1e22, 0x1e22, 0x1e24, 0x1e24, 0x1e26, 0x1e26, 0x1e28, 0x1e28, 0x1e2a, 0x1e2a, 0x1e2c, 0x1e2c, 0x1e2e, 0x1e2e, 0x1e30, 0x1e30, 0x1e32, 0x1e32, 0x1e34, 0x1e34, 0x1e36,
                        0x1e36, 0x1e38, 0x1e38, 0x1e3a, 0x1e3a, 0x1e3c, 0x1e3c, 0x1e3e, 0x1e3e, 0x1e40, 0x1e40, 0x1e42, 0x1e42, 0x1e44, 0x1e44, 0x1e46, 0x1e46, 0x1e48, 0x1e48, 0x1e4a, 0x1e4a, 0x1e4c,
                        0x1e4c, 0x1e4e, 0x1e4e, 0x1e50, 0x1e50, 0x1e52, 0x1e52, 0x1e54, 0x1e54, 0x1e56, 0x1e56, 0x1e58, 0x1e58, 0x1e5a, 0x1e5a, 0x1e5c, 0x1e5c, 0x1e5e, 0x1e5e, 0x1e60, 0x1e60, 0x1e62,
                        0x1e62, 0x1e64, 0x1e64, 0x1e66, 0x1e66, 0x1e68, 0x1e68, 0x1e6a, 0x1e6a, 0x1e6c, 0x1e6c, 0x1e6e, 0x1e6e, 0x1e70, 0x1e70, 0x1e72, 0x1e72, 0x1e74, 0x1e74, 0x1e76, 0x1e76, 0x1e78,
                        0x1e78, 0x1e7a, 0x1e7a, 0x1e7c, 0x1e7c, 0x1e7e, 0x1e7e, 0x1e80, 0x1e80, 0x1e82, 0x1e82, 0x1e84, 0x1e84, 0x1e86, 0x1e86, 0x1e88, 0x1e88, 0x1e8a, 0x1e8a, 0x1e8c, 0x1e8c, 0x1e8e,
                        0x1e8e, 0x1e90, 0x1e90, 0x1e92, 0x1e92, 0x1e94, 0x1e94, 0x1e9e, 0x1e9e, 0x1ea0, 0x1ea0, 0x1ea2, 0x1ea2, 0x1ea4, 0x1ea4, 0x1ea6, 0x1ea6, 0x1ea8, 0x1ea8, 0x1eaa, 0x1eaa, 0x1eac,
                        0x1eac, 0x1eae, 0x1eae, 0x1eb0, 0x1eb0, 0x1eb2, 0x1eb2, 0x1eb4, 0x1eb4, 0x1eb6, 0x1eb6, 0x1eb8, 0x1eb8, 0x1eba, 0x1eba, 0x1ebc, 0x1ebc, 0x1ebe, 0x1ebe, 0x1ec0, 0x1ec0, 0x1ec2,
                        0x1ec2, 0x1ec4, 0x1ec4, 0x1ec6, 0x1ec6, 0x1ec8, 0x1ec8, 0x1eca, 0x1eca, 0x1ecc, 0x1ecc, 0x1ece, 0x1ece, 0x1ed0, 0x1ed0, 0x1ed2, 0x1ed2, 0x1ed4, 0x1ed4, 0x1ed6, 0x1ed6, 0x1ed8,
                        0x1ed8, 0x1eda, 0x1eda, 0x1edc, 0x1edc, 0x1ede, 0x1ede, 0x1ee0, 0x1ee0, 0x1ee2, 0x1ee2, 0x1ee4, 0x1ee4, 0x1ee6, 0x1ee6, 0x1ee8, 0x1ee8, 0x1eea, 0x1eea, 0x1eec, 0x1eec, 0x1eee,
                        0x1eee, 0x1ef0, 0x1ef0, 0x1ef2, 0x1ef2, 0x1ef4, 0x1ef4, 0x1ef6, 0x1ef6, 0x1ef8, 0x1ef8, 0x1efa, 0x1efa, 0x1efc, 0x1efc, 0x1efe, 0x1efe, 0x1f08, 0x1f0f, 0x1f18, 0x1f1d, 0x1f28,
                        0x1f2f, 0x1f38, 0x1f3f, 0x1f48, 0x1f4d, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f5f, 0x1f68, 0x1f6f, 0x1fb8, 0x1fbb, 0x1fc8, 0x1fcb, 0x1fd8, 0x1fdb, 0x1fe8,
                        0x1fec, 0x1ff8, 0x1ffb, 0x2102, 0x2102, 0x2107, 0x2107, 0x210b, 0x210d, 0x2110, 0x2112, 0x2115, 0x2115, 0x2119, 0x211d, 0x2124, 0x2124, 0x2126, 0x2126, 0x2128, 0x2128, 0x212a,
                        0x212d, 0x2130, 0x2133, 0x213e, 0x213f, 0x2145, 0x2145, 0x2160, 0x216f, 0x2183, 0x2183, 0x24b6, 0x24cf, 0x2c00, 0x2c2e, 0x2c60, 0x2c60, 0x2c62, 0x2c64, 0x2c67, 0x2c67, 0x2c69,
                        0x2c69, 0x2c6b, 0x2c6b, 0x2c6d, 0x2c70, 0x2c72, 0x2c72, 0x2c75, 0x2c75, 0x2c7e, 0x2c80, 0x2c82, 0x2c82, 0x2c84, 0x2c84, 0x2c86, 0x2c86, 0x2c88, 0x2c88, 0x2c8a, 0x2c8a, 0x2c8c,
                        0x2c8c, 0x2c8e, 0x2c8e, 0x2c90, 0x2c90, 0x2c92, 0x2c92, 0x2c94, 0x2c94, 0x2c96, 0x2c96, 0x2c98, 0x2c98, 0x2c9a, 0x2c9a, 0x2c9c, 0x2c9c, 0x2c9e, 0x2c9e, 0x2ca0, 0x2ca0, 0x2ca2,
                        0x2ca2, 0x2ca4, 0x2ca4, 0x2ca6, 0x2ca6, 0x2ca8, 0x2ca8, 0x2caa, 0x2caa, 0x2cac, 0x2cac, 0x2cae, 0x2cae, 0x2cb0, 0x2cb0, 0x2cb2, 0x2cb2, 0x2cb4, 0x2cb4, 0x2cb6, 0x2cb6, 0x2cb8,
                        0x2cb8, 0x2cba, 0x2cba, 0x2cbc, 0x2cbc, 0x2cbe, 0x2cbe, 0x2cc0, 0x2cc0, 0x2cc2, 0x2cc2, 0x2cc4, 0x2cc4, 0x2cc6, 0x2cc6, 0x2cc8, 0x2cc8, 0x2cca, 0x2cca, 0x2ccc, 0x2ccc, 0x2cce,
                        0x2cce, 0x2cd0, 0x2cd0, 0x2cd2, 0x2cd2, 0x2cd4, 0x2cd4, 0x2cd6, 0x2cd6, 0x2cd8, 0x2cd8, 0x2cda, 0x2cda, 0x2cdc, 0x2cdc, 0x2cde, 0x2cde, 0x2ce0, 0x2ce0, 0x2ce2, 0x2ce2, 0x2ceb,
                        0x2ceb, 0x2ced, 0x2ced, 0x2cf2, 0x2cf2, 0xa640, 0xa640, 0xa642, 0xa642, 0xa644, 0xa644, 0xa646, 0xa646, 0xa648, 0xa648, 0xa64a, 0xa64a, 0xa64c, 0xa64c, 0xa64e, 0xa64e, 0xa650,
                        0xa650, 0xa652, 0xa652, 0xa654, 0xa654, 0xa656, 0xa656, 0xa658, 0xa658, 0xa65a, 0xa65a, 0xa65c, 0xa65c, 0xa65e, 0xa65e, 0xa660, 0xa660, 0xa662, 0xa662, 0xa664, 0xa664, 0xa666,
                        0xa666, 0xa668, 0xa668, 0xa66a, 0xa66a, 0xa66c, 0xa66c, 0xa680, 0xa680, 0xa682, 0xa682, 0xa684, 0xa684, 0xa686, 0xa686, 0xa688, 0xa688, 0xa68a, 0xa68a, 0xa68c, 0xa68c, 0xa68e,
                        0xa68e, 0xa690, 0xa690, 0xa692, 0xa692, 0xa694, 0xa694, 0xa696, 0xa696, 0xa698, 0xa698, 0xa69a, 0xa69a, 0xa722, 0xa722, 0xa724, 0xa724, 0xa726, 0xa726, 0xa728, 0xa728, 0xa72a,
                        0xa72a, 0xa72c, 0xa72c, 0xa72e, 0xa72e, 0xa732, 0xa732, 0xa734, 0xa734, 0xa736, 0xa736, 0xa738, 0xa738, 0xa73a, 0xa73a, 0xa73c, 0xa73c, 0xa73e, 0xa73e, 0xa740, 0xa740, 0xa742,
                        0xa742, 0xa744, 0xa744, 0xa746, 0xa746, 0xa748, 0xa748, 0xa74a, 0xa74a, 0xa74c, 0xa74c, 0xa74e, 0xa74e, 0xa750, 0xa750, 0xa752, 0xa752, 0xa754, 0xa754, 0xa756, 0xa756, 0xa758,
                        0xa758, 0xa75a, 0xa75a, 0xa75c, 0xa75c, 0xa75e, 0xa75e, 0xa760, 0xa760, 0xa762, 0xa762, 0xa764, 0xa764, 0xa766, 0xa766, 0xa768, 0xa768, 0xa76a, 0xa76a, 0xa76c, 0xa76c, 0xa76e,
                        0xa76e, 0xa779, 0xa779, 0xa77b, 0xa77b, 0xa77d, 0xa77e, 0xa780, 0xa780, 0xa782, 0xa782, 0xa784, 0xa784, 0xa786, 0xa786, 0xa78b, 0xa78b, 0xa78d, 0xa78d, 0xa790, 0xa790, 0xa792,
                        0xa792, 0xa796, 0xa796, 0xa798, 0xa798, 0xa79a, 0xa79a, 0xa79c, 0xa79c, 0xa79e, 0xa79e, 0xa7a0, 0xa7a0, 0xa7a2, 0xa7a2, 0xa7a4, 0xa7a4, 0xa7a6, 0xa7a6, 0xa7a8, 0xa7a8, 0xa7aa,
                        0xa7ae, 0xa7b0, 0xa7b4, 0xa7b6, 0xa7b6, 0xa7b8, 0xa7b8, 0xa7ba, 0xa7ba, 0xa7bc, 0xa7bc, 0xa7be, 0xa7be, 0xa7c2, 0xa7c2, 0xa7c4, 0xa7c6, 0xff21, 0xff3a, 0x10400, 0x10427,
                        0x104b0, 0x104d3, 0x10c80, 0x10cb2, 0x118a0, 0x118bf, 0x16e40, 0x16e5f, 0x1d400, 0x1d419, 0x1d434, 0x1d44d, 0x1d468, 0x1d481, 0x1d49c, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2,
                        0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b5, 0x1d4d0, 0x1d4e9, 0x1d504, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c, 0x1d538, 0x1d539,
                        0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d56c, 0x1d585, 0x1d5a0, 0x1d5b9, 0x1d5d4, 0x1d5ed, 0x1d608, 0x1d621, 0x1d63c, 0x1d655, 0x1d670,
                        0x1d689, 0x1d6a8, 0x1d6c0, 0x1d6e2, 0x1d6fa, 0x1d71c, 0x1d734, 0x1d756, 0x1d76e, 0x1d790, 0x1d7a8, 0x1d7ca, 0x1d7ca, 0x1e900, 0x1e921, 0x1f130, 0x1f149, 0x1f150, 0x1f169,
                        0x1f170, 0x1f189));
    }

    private static void populateVS() {
        SET_ENCODINGS.put("VS", CodePointSet.createNoDedup(0x180b, 0x180d, 0xfe00, 0xfe0f, 0xe0100, 0xe01ef));
    }

    private static void populateWSPACE() {
        SET_ENCODINGS.put("WSpace", CodePointSet.createNoDedup(0x0009, 0x000d, 0x0020, 0x0020, 0x0085, 0x0085, 0x00a0, 0x00a0, 0x1680, 0x1680, 0x2000, 0x200a, 0x2028, 0x2029, 0x202f, 0x202f, 0x205f,
                        0x205f, 0x3000, 0x3000));
    }

    private static void populateXIDC() {
        SET_ENCODINGS.put("XIDC", CodePointSet.createNoDedup(0x0030, 0x0039, 0x0041, 0x005a, 0x005f, 0x005f, 0x0061, 0x007a, 0x00aa, 0x00aa, 0x00b5, 0x00b5, 0x00b7, 0x00b7, 0x00ba, 0x00ba, 0x00c0,
                        0x00d6, 0x00d8, 0x00f6, 0x00f8, 0x02c1, 0x02c6, 0x02d1, 0x02e0, 0x02e4, 0x02ec, 0x02ec, 0x02ee, 0x02ee, 0x0300, 0x0374, 0x0376, 0x0377, 0x037b, 0x037d, 0x037f, 0x037f, 0x0386,
                        0x038a, 0x038c, 0x038c, 0x038e, 0x03a1, 0x03a3, 0x03f5, 0x03f7, 0x0481, 0x0483, 0x0487, 0x048a, 0x052f, 0x0531, 0x0556, 0x0559, 0x0559, 0x0560, 0x0588, 0x0591, 0x05bd, 0x05bf,
                        0x05bf, 0x05c1, 0x05c2, 0x05c4, 0x05c5, 0x05c7, 0x05c7, 0x05d0, 0x05ea, 0x05ef, 0x05f2, 0x0610, 0x061a, 0x0620, 0x0669, 0x066e, 0x06d3, 0x06d5, 0x06dc, 0x06df, 0x06e8, 0x06ea,
                        0x06fc, 0x06ff, 0x06ff, 0x0710, 0x074a, 0x074d, 0x07b1, 0x07c0, 0x07f5, 0x07fa, 0x07fa, 0x07fd, 0x07fd, 0x0800, 0x082d, 0x0840, 0x085b, 0x0860, 0x086a, 0x08a0, 0x08b4, 0x08b6,
                        0x08bd, 0x08d3, 0x08e1, 0x08e3, 0x0963, 0x0966, 0x096f, 0x0971, 0x0983, 0x0985, 0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, 0x09aa, 0x09b0, 0x09b2, 0x09b2, 0x09b6, 0x09b9, 0x09bc,
                        0x09c4, 0x09c7, 0x09c8, 0x09cb, 0x09ce, 0x09d7, 0x09d7, 0x09dc, 0x09dd, 0x09df, 0x09e3, 0x09e6, 0x09f1, 0x09fc, 0x09fc, 0x09fe, 0x09fe, 0x0a01, 0x0a03, 0x0a05, 0x0a0a, 0x0a0f,
                        0x0a10, 0x0a13, 0x0a28, 0x0a2a, 0x0a30, 0x0a32, 0x0a33, 0x0a35, 0x0a36, 0x0a38, 0x0a39, 0x0a3c, 0x0a3c, 0x0a3e, 0x0a42, 0x0a47, 0x0a48, 0x0a4b, 0x0a4d, 0x0a51, 0x0a51, 0x0a59,
                        0x0a5c, 0x0a5e, 0x0a5e, 0x0a66, 0x0a75, 0x0a81, 0x0a83, 0x0a85, 0x0a8d, 0x0a8f, 0x0a91, 0x0a93, 0x0aa8, 0x0aaa, 0x0ab0, 0x0ab2, 0x0ab3, 0x0ab5, 0x0ab9, 0x0abc, 0x0ac5, 0x0ac7,
                        0x0ac9, 0x0acb, 0x0acd, 0x0ad0, 0x0ad0, 0x0ae0, 0x0ae3, 0x0ae6, 0x0aef, 0x0af9, 0x0aff, 0x0b01, 0x0b03, 0x0b05, 0x0b0c, 0x0b0f, 0x0b10, 0x0b13, 0x0b28, 0x0b2a, 0x0b30, 0x0b32,
                        0x0b33, 0x0b35, 0x0b39, 0x0b3c, 0x0b44, 0x0b47, 0x0b48, 0x0b4b, 0x0b4d, 0x0b56, 0x0b57, 0x0b5c, 0x0b5d, 0x0b5f, 0x0b63, 0x0b66, 0x0b6f, 0x0b71, 0x0b71, 0x0b82, 0x0b83, 0x0b85,
                        0x0b8a, 0x0b8e, 0x0b90, 0x0b92, 0x0b95, 0x0b99, 0x0b9a, 0x0b9c, 0x0b9c, 0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0ba8, 0x0baa, 0x0bae, 0x0bb9, 0x0bbe, 0x0bc2, 0x0bc6, 0x0bc8, 0x0bca,
                        0x0bcd, 0x0bd0, 0x0bd0, 0x0bd7, 0x0bd7, 0x0be6, 0x0bef, 0x0c00, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, 0x0c3d, 0x0c44, 0x0c46, 0x0c48, 0x0c4a, 0x0c4d, 0x0c55,
                        0x0c56, 0x0c58, 0x0c5a, 0x0c60, 0x0c63, 0x0c66, 0x0c6f, 0x0c80, 0x0c83, 0x0c85, 0x0c8c, 0x0c8e, 0x0c90, 0x0c92, 0x0ca8, 0x0caa, 0x0cb3, 0x0cb5, 0x0cb9, 0x0cbc, 0x0cc4, 0x0cc6,
                        0x0cc8, 0x0cca, 0x0ccd, 0x0cd5, 0x0cd6, 0x0cde, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, 0x0cf1, 0x0cf2, 0x0d00, 0x0d03, 0x0d05, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, 0x0d46,
                        0x0d48, 0x0d4a, 0x0d4e, 0x0d54, 0x0d57, 0x0d5f, 0x0d63, 0x0d66, 0x0d6f, 0x0d7a, 0x0d7f, 0x0d82, 0x0d83, 0x0d85, 0x0d96, 0x0d9a, 0x0db1, 0x0db3, 0x0dbb, 0x0dbd, 0x0dbd, 0x0dc0,
                        0x0dc6, 0x0dca, 0x0dca, 0x0dcf, 0x0dd4, 0x0dd6, 0x0dd6, 0x0dd8, 0x0ddf, 0x0de6, 0x0def, 0x0df2, 0x0df3, 0x0e01, 0x0e3a, 0x0e40, 0x0e4e, 0x0e50, 0x0e59, 0x0e81, 0x0e82, 0x0e84,
                        0x0e84, 0x0e86, 0x0e8a, 0x0e8c, 0x0ea3, 0x0ea5, 0x0ea5, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, 0x0ec8, 0x0ecd, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f00, 0x0f18,
                        0x0f19, 0x0f20, 0x0f29, 0x0f35, 0x0f35, 0x0f37, 0x0f37, 0x0f39, 0x0f39, 0x0f3e, 0x0f47, 0x0f49, 0x0f6c, 0x0f71, 0x0f84, 0x0f86, 0x0f97, 0x0f99, 0x0fbc, 0x0fc6, 0x0fc6, 0x1000,
                        0x1049, 0x1050, 0x109d, 0x10a0, 0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x10d0, 0x10fa, 0x10fc, 0x1248, 0x124a, 0x124d, 0x1250, 0x1256, 0x1258, 0x1258, 0x125a, 0x125d, 0x1260,
                        0x1288, 0x128a, 0x128d, 0x1290, 0x12b0, 0x12b2, 0x12b5, 0x12b8, 0x12be, 0x12c0, 0x12c0, 0x12c2, 0x12c5, 0x12c8, 0x12d6, 0x12d8, 0x1310, 0x1312, 0x1315, 0x1318, 0x135a, 0x135d,
                        0x135f, 0x1369, 0x1371, 0x1380, 0x138f, 0x13a0, 0x13f5, 0x13f8, 0x13fd, 0x1401, 0x166c, 0x166f, 0x167f, 0x1681, 0x169a, 0x16a0, 0x16ea, 0x16ee, 0x16f8, 0x1700, 0x170c, 0x170e,
                        0x1714, 0x1720, 0x1734, 0x1740, 0x1753, 0x1760, 0x176c, 0x176e, 0x1770, 0x1772, 0x1773, 0x1780, 0x17d3, 0x17d7, 0x17d7, 0x17dc, 0x17dd, 0x17e0, 0x17e9, 0x180b, 0x180d, 0x1810,
                        0x1819, 0x1820, 0x1878, 0x1880, 0x18aa, 0x18b0, 0x18f5, 0x1900, 0x191e, 0x1920, 0x192b, 0x1930, 0x193b, 0x1946, 0x196d, 0x1970, 0x1974, 0x1980, 0x19ab, 0x19b0, 0x19c9, 0x19d0,
                        0x19da, 0x1a00, 0x1a1b, 0x1a20, 0x1a5e, 0x1a60, 0x1a7c, 0x1a7f, 0x1a89, 0x1a90, 0x1a99, 0x1aa7, 0x1aa7, 0x1ab0, 0x1abd, 0x1b00, 0x1b4b, 0x1b50, 0x1b59, 0x1b6b, 0x1b73, 0x1b80,
                        0x1bf3, 0x1c00, 0x1c37, 0x1c40, 0x1c49, 0x1c4d, 0x1c7d, 0x1c80, 0x1c88, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1cd0, 0x1cd2, 0x1cd4, 0x1cfa, 0x1d00, 0x1df9, 0x1dfb, 0x1f15, 0x1f18,
                        0x1f1d, 0x1f20, 0x1f45, 0x1f48, 0x1f4d, 0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f7d, 0x1f80, 0x1fb4, 0x1fb6, 0x1fbc, 0x1fbe, 0x1fbe, 0x1fc2,
                        0x1fc4, 0x1fc6, 0x1fcc, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fdb, 0x1fe0, 0x1fec, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffc, 0x203f, 0x2040, 0x2054, 0x2054, 0x2071, 0x2071, 0x207f, 0x207f, 0x2090,
                        0x209c, 0x20d0, 0x20dc, 0x20e1, 0x20e1, 0x20e5, 0x20f0, 0x2102, 0x2102, 0x2107, 0x2107, 0x210a, 0x2113, 0x2115, 0x2115, 0x2118, 0x211d, 0x2124, 0x2124, 0x2126, 0x2126, 0x2128,
                        0x2128, 0x212a, 0x2139, 0x213c, 0x213f, 0x2145, 0x2149, 0x214e, 0x214e, 0x2160, 0x2188, 0x2c00, 0x2c2e, 0x2c30, 0x2c5e, 0x2c60, 0x2ce4, 0x2ceb, 0x2cf3, 0x2d00, 0x2d25, 0x2d27,
                        0x2d27, 0x2d2d, 0x2d2d, 0x2d30, 0x2d67, 0x2d6f, 0x2d6f, 0x2d7f, 0x2d96, 0x2da0, 0x2da6, 0x2da8, 0x2dae, 0x2db0, 0x2db6, 0x2db8, 0x2dbe, 0x2dc0, 0x2dc6, 0x2dc8, 0x2dce, 0x2dd0,
                        0x2dd6, 0x2dd8, 0x2dde, 0x2de0, 0x2dff, 0x3005, 0x3007, 0x3021, 0x302f, 0x3031, 0x3035, 0x3038, 0x303c, 0x3041, 0x3096, 0x3099, 0x309a, 0x309d, 0x309f, 0x30a1, 0x30fa, 0x30fc,
                        0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, 0x31a0, 0x31ba, 0x31f0, 0x31ff, 0x3400, 0x4db5, 0x4e00, 0x9fef, 0xa000, 0xa48c, 0xa4d0, 0xa4fd, 0xa500, 0xa60c, 0xa610, 0xa62b, 0xa640,
                        0xa66f, 0xa674, 0xa67d, 0xa67f, 0xa6f1, 0xa717, 0xa71f, 0xa722, 0xa788, 0xa78b, 0xa7bf, 0xa7c2, 0xa7c6, 0xa7f7, 0xa827, 0xa840, 0xa873, 0xa880, 0xa8c5, 0xa8d0, 0xa8d9, 0xa8e0,
                        0xa8f7, 0xa8fb, 0xa8fb, 0xa8fd, 0xa92d, 0xa930, 0xa953, 0xa960, 0xa97c, 0xa980, 0xa9c0, 0xa9cf, 0xa9d9, 0xa9e0, 0xa9fe, 0xaa00, 0xaa36, 0xaa40, 0xaa4d, 0xaa50, 0xaa59, 0xaa60,
                        0xaa76, 0xaa7a, 0xaac2, 0xaadb, 0xaadd, 0xaae0, 0xaaef, 0xaaf2, 0xaaf6, 0xab01, 0xab06, 0xab09, 0xab0e, 0xab11, 0xab16, 0xab20, 0xab26, 0xab28, 0xab2e, 0xab30, 0xab5a, 0xab5c,
                        0xab67, 0xab70, 0xabea, 0xabec, 0xabed, 0xabf0, 0xabf9, 0xac00, 0xd7a3, 0xd7b0, 0xd7c6, 0xd7cb, 0xd7fb, 0xf900, 0xfa6d, 0xfa70, 0xfad9, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xfb1d,
                        0xfb28, 0xfb2a, 0xfb36, 0xfb38, 0xfb3c, 0xfb3e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfb46, 0xfbb1, 0xfbd3, 0xfc5d, 0xfc64, 0xfd3d, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0,
                        0xfdf9, 0xfe00, 0xfe0f, 0xfe20, 0xfe2f, 0xfe33, 0xfe34, 0xfe4d, 0xfe4f, 0xfe71, 0xfe71, 0xfe73, 0xfe73, 0xfe77, 0xfe77, 0xfe79, 0xfe79, 0xfe7b, 0xfe7b, 0xfe7d, 0xfe7d, 0xfe7f,
                        0xfefc, 0xff10, 0xff19, 0xff21, 0xff3a, 0xff3f, 0xff3f, 0xff41, 0xff5a, 0xff66, 0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, 0xffda, 0xffdc, 0x10000, 0x1000b,
                        0x1000d, 0x10026, 0x10028, 0x1003a, 0x1003c, 0x1003d, 0x1003f, 0x1004d, 0x10050, 0x1005d, 0x10080, 0x100fa, 0x10140, 0x10174, 0x101fd, 0x101fd, 0x10280, 0x1029c, 0x102a0,
                        0x102d0, 0x102e0, 0x102e0, 0x10300, 0x1031f, 0x1032d, 0x1034a, 0x10350, 0x1037a, 0x10380, 0x1039d, 0x103a0, 0x103c3, 0x103c8, 0x103cf, 0x103d1, 0x103d5, 0x10400, 0x1049d,
                        0x104a0, 0x104a9, 0x104b0, 0x104d3, 0x104d8, 0x104fb, 0x10500, 0x10527, 0x10530, 0x10563, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, 0x10800, 0x10805, 0x10808,
                        0x10808, 0x1080a, 0x10835, 0x10837, 0x10838, 0x1083c, 0x1083c, 0x1083f, 0x10855, 0x10860, 0x10876, 0x10880, 0x1089e, 0x108e0, 0x108f2, 0x108f4, 0x108f5, 0x10900, 0x10915,
                        0x10920, 0x10939, 0x10980, 0x109b7, 0x109be, 0x109bf, 0x10a00, 0x10a03, 0x10a05, 0x10a06, 0x10a0c, 0x10a13, 0x10a15, 0x10a17, 0x10a19, 0x10a35, 0x10a38, 0x10a3a, 0x10a3f,
                        0x10a3f, 0x10a60, 0x10a7c, 0x10a80, 0x10a9c, 0x10ac0, 0x10ac7, 0x10ac9, 0x10ae6, 0x10b00, 0x10b35, 0x10b40, 0x10b55, 0x10b60, 0x10b72, 0x10b80, 0x10b91, 0x10c00, 0x10c48,
                        0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x10d00, 0x10d27, 0x10d30, 0x10d39, 0x10f00, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f50, 0x10fe0, 0x10ff6, 0x11000, 0x11046, 0x11066,
                        0x1106f, 0x1107f, 0x110ba, 0x110d0, 0x110e8, 0x110f0, 0x110f9, 0x11100, 0x11134, 0x11136, 0x1113f, 0x11144, 0x11146, 0x11150, 0x11173, 0x11176, 0x11176, 0x11180, 0x111c4,
                        0x111c9, 0x111cc, 0x111d0, 0x111da, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x11237, 0x1123e, 0x1123e, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, 0x1128f,
                        0x1129d, 0x1129f, 0x112a8, 0x112b0, 0x112ea, 0x112f0, 0x112f9, 0x11300, 0x11303, 0x11305, 0x1130c, 0x1130f, 0x11310, 0x11313, 0x11328, 0x1132a, 0x11330, 0x11332, 0x11333,
                        0x11335, 0x11339, 0x1133b, 0x11344, 0x11347, 0x11348, 0x1134b, 0x1134d, 0x11350, 0x11350, 0x11357, 0x11357, 0x1135d, 0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, 0x11400,
                        0x1144a, 0x11450, 0x11459, 0x1145e, 0x1145f, 0x11480, 0x114c5, 0x114c7, 0x114c7, 0x114d0, 0x114d9, 0x11580, 0x115b5, 0x115b8, 0x115c0, 0x115d8, 0x115dd, 0x11600, 0x11640,
                        0x11644, 0x11644, 0x11650, 0x11659, 0x11680, 0x116b8, 0x116c0, 0x116c9, 0x11700, 0x1171a, 0x1171d, 0x1172b, 0x11730, 0x11739, 0x11800, 0x1183a, 0x118a0, 0x118e9, 0x118ff,
                        0x118ff, 0x119a0, 0x119a7, 0x119aa, 0x119d7, 0x119da, 0x119e1, 0x119e3, 0x119e4, 0x11a00, 0x11a3e, 0x11a47, 0x11a47, 0x11a50, 0x11a99, 0x11a9d, 0x11a9d, 0x11ac0, 0x11af8,
                        0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c40, 0x11c50, 0x11c59, 0x11c72, 0x11c8f, 0x11c92, 0x11ca7, 0x11ca9, 0x11cb6, 0x11d00, 0x11d06, 0x11d08, 0x11d09, 0x11d0b,
                        0x11d36, 0x11d3a, 0x11d3a, 0x11d3c, 0x11d3d, 0x11d3f, 0x11d47, 0x11d50, 0x11d59, 0x11d60, 0x11d65, 0x11d67, 0x11d68, 0x11d6a, 0x11d8e, 0x11d90, 0x11d91, 0x11d93, 0x11d98,
                        0x11da0, 0x11da9, 0x11ee0, 0x11ef6, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x13000, 0x1342e, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a60,
                        0x16a69, 0x16ad0, 0x16aed, 0x16af0, 0x16af4, 0x16b00, 0x16b36, 0x16b40, 0x16b43, 0x16b50, 0x16b59, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, 0x16e40, 0x16e7f, 0x16f00, 0x16f4a,
                        0x16f4f, 0x16f87, 0x16f8f, 0x16f9f, 0x16fe0, 0x16fe1, 0x16fe3, 0x16fe3, 0x17000, 0x187f7, 0x18800, 0x18af2, 0x1b000, 0x1b11e, 0x1b150, 0x1b152, 0x1b164, 0x1b167, 0x1b170,
                        0x1b2fb, 0x1bc00, 0x1bc6a, 0x1bc70, 0x1bc7c, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9d, 0x1bc9e, 0x1d165, 0x1d169, 0x1d16d, 0x1d172, 0x1d17b, 0x1d182, 0x1d185, 0x1d18b,
                        0x1d1aa, 0x1d1ad, 0x1d242, 0x1d244, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb,
                        0x1d4bb, 0x1d4bd, 0x1d4c3, 0x1d4c5, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c, 0x1d51e, 0x1d539, 0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546,
                        0x1d54a, 0x1d550, 0x1d552, 0x1d6a5, 0x1d6a8, 0x1d6c0, 0x1d6c2, 0x1d6da, 0x1d6dc, 0x1d6fa, 0x1d6fc, 0x1d714, 0x1d716, 0x1d734, 0x1d736, 0x1d74e, 0x1d750, 0x1d76e, 0x1d770,
                        0x1d788, 0x1d78a, 0x1d7a8, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7cb, 0x1d7ce, 0x1d7ff, 0x1da00, 0x1da36, 0x1da3b, 0x1da6c, 0x1da75, 0x1da75, 0x1da84, 0x1da84, 0x1da9b, 0x1da9f,
                        0x1daa1, 0x1daaf, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, 0x1e14e,
                        0x1e14e, 0x1e2c0, 0x1e2f9, 0x1e800, 0x1e8c4, 0x1e8d0, 0x1e8d6, 0x1e900, 0x1e94b, 0x1e950, 0x1e959, 0x1ee00, 0x1ee03, 0x1ee05, 0x1ee1f, 0x1ee21, 0x1ee22, 0x1ee24, 0x1ee24,
                        0x1ee27, 0x1ee27, 0x1ee29, 0x1ee32, 0x1ee34, 0x1ee37, 0x1ee39, 0x1ee39, 0x1ee3b, 0x1ee3b, 0x1ee42, 0x1ee42, 0x1ee47, 0x1ee47, 0x1ee49, 0x1ee49, 0x1ee4b, 0x1ee4b, 0x1ee4d,
                        0x1ee4f, 0x1ee51, 0x1ee52, 0x1ee54, 0x1ee54, 0x1ee57, 0x1ee57, 0x1ee59, 0x1ee59, 0x1ee5b, 0x1ee5b, 0x1ee5d, 0x1ee5d, 0x1ee5f, 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64, 0x1ee64,
                        0x1ee67, 0x1ee6a, 0x1ee6c, 0x1ee72, 0x1ee74, 0x1ee77, 0x1ee79, 0x1ee7c, 0x1ee7e, 0x1ee7e, 0x1ee80, 0x1ee89, 0x1ee8b, 0x1ee9b, 0x1eea1, 0x1eea3, 0x1eea5, 0x1eea9, 0x1eeab,
                        0x1eebb, 0x20000, 0x2a6d6, 0x2a700, 0x2b734, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, 0x2f800, 0x2fa1d, 0xe0100, 0xe01ef));
    }

    private static void populateXIDS() {
        SET_ENCODINGS.put("XIDS", CodePointSet.createNoDedup(0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, 0x00b5, 0x00b5, 0x00ba, 0x00ba, 0x00c0, 0x00d6, 0x00d8, 0x00f6, 0x00f8, 0x02c1, 0x02c6,
                        0x02d1, 0x02e0, 0x02e4, 0x02ec, 0x02ec, 0x02ee, 0x02ee, 0x0370, 0x0374, 0x0376, 0x0377, 0x037b, 0x037d, 0x037f, 0x037f, 0x0386, 0x0386, 0x0388, 0x038a, 0x038c, 0x038c, 0x038e,
                        0x03a1, 0x03a3, 0x03f5, 0x03f7, 0x0481, 0x048a, 0x052f, 0x0531, 0x0556, 0x0559, 0x0559, 0x0560, 0x0588, 0x05d0, 0x05ea, 0x05ef, 0x05f2, 0x0620, 0x064a, 0x066e, 0x066f, 0x0671,
                        0x06d3, 0x06d5, 0x06d5, 0x06e5, 0x06e6, 0x06ee, 0x06ef, 0x06fa, 0x06fc, 0x06ff, 0x06ff, 0x0710, 0x0710, 0x0712, 0x072f, 0x074d, 0x07a5, 0x07b1, 0x07b1, 0x07ca, 0x07ea, 0x07f4,
                        0x07f5, 0x07fa, 0x07fa, 0x0800, 0x0815, 0x081a, 0x081a, 0x0824, 0x0824, 0x0828, 0x0828, 0x0840, 0x0858, 0x0860, 0x086a, 0x08a0, 0x08b4, 0x08b6, 0x08bd, 0x0904, 0x0939, 0x093d,
                        0x093d, 0x0950, 0x0950, 0x0958, 0x0961, 0x0971, 0x0980, 0x0985, 0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, 0x09aa, 0x09b0, 0x09b2, 0x09b2, 0x09b6, 0x09b9, 0x09bd, 0x09bd, 0x09ce,
                        0x09ce, 0x09dc, 0x09dd, 0x09df, 0x09e1, 0x09f0, 0x09f1, 0x09fc, 0x09fc, 0x0a05, 0x0a0a, 0x0a0f, 0x0a10, 0x0a13, 0x0a28, 0x0a2a, 0x0a30, 0x0a32, 0x0a33, 0x0a35, 0x0a36, 0x0a38,
                        0x0a39, 0x0a59, 0x0a5c, 0x0a5e, 0x0a5e, 0x0a72, 0x0a74, 0x0a85, 0x0a8d, 0x0a8f, 0x0a91, 0x0a93, 0x0aa8, 0x0aaa, 0x0ab0, 0x0ab2, 0x0ab3, 0x0ab5, 0x0ab9, 0x0abd, 0x0abd, 0x0ad0,
                        0x0ad0, 0x0ae0, 0x0ae1, 0x0af9, 0x0af9, 0x0b05, 0x0b0c, 0x0b0f, 0x0b10, 0x0b13, 0x0b28, 0x0b2a, 0x0b30, 0x0b32, 0x0b33, 0x0b35, 0x0b39, 0x0b3d, 0x0b3d, 0x0b5c, 0x0b5d, 0x0b5f,
                        0x0b61, 0x0b71, 0x0b71, 0x0b83, 0x0b83, 0x0b85, 0x0b8a, 0x0b8e, 0x0b90, 0x0b92, 0x0b95, 0x0b99, 0x0b9a, 0x0b9c, 0x0b9c, 0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0ba8, 0x0baa, 0x0bae,
                        0x0bb9, 0x0bd0, 0x0bd0, 0x0c05, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, 0x0c3d, 0x0c3d, 0x0c58, 0x0c5a, 0x0c60, 0x0c61, 0x0c80, 0x0c80, 0x0c85, 0x0c8c, 0x0c8e,
                        0x0c90, 0x0c92, 0x0ca8, 0x0caa, 0x0cb3, 0x0cb5, 0x0cb9, 0x0cbd, 0x0cbd, 0x0cde, 0x0cde, 0x0ce0, 0x0ce1, 0x0cf1, 0x0cf2, 0x0d05, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d3a, 0x0d3d,
                        0x0d3d, 0x0d4e, 0x0d4e, 0x0d54, 0x0d56, 0x0d5f, 0x0d61, 0x0d7a, 0x0d7f, 0x0d85, 0x0d96, 0x0d9a, 0x0db1, 0x0db3, 0x0dbb, 0x0dbd, 0x0dbd, 0x0dc0, 0x0dc6, 0x0e01, 0x0e30, 0x0e32,
                        0x0e32, 0x0e40, 0x0e46, 0x0e81, 0x0e82, 0x0e84, 0x0e84, 0x0e86, 0x0e8a, 0x0e8c, 0x0ea3, 0x0ea5, 0x0ea5, 0x0ea7, 0x0eb0, 0x0eb2, 0x0eb2, 0x0ebd, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6,
                        0x0ec6, 0x0edc, 0x0edf, 0x0f00, 0x0f00, 0x0f40, 0x0f47, 0x0f49, 0x0f6c, 0x0f88, 0x0f8c, 0x1000, 0x102a, 0x103f, 0x103f, 0x1050, 0x1055, 0x105a, 0x105d, 0x1061, 0x1061, 0x1065,
                        0x1066, 0x106e, 0x1070, 0x1075, 0x1081, 0x108e, 0x108e, 0x10a0, 0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x10d0, 0x10fa, 0x10fc, 0x1248, 0x124a, 0x124d, 0x1250, 0x1256, 0x1258,
                        0x1258, 0x125a, 0x125d, 0x1260, 0x1288, 0x128a, 0x128d, 0x1290, 0x12b0, 0x12b2, 0x12b5, 0x12b8, 0x12be, 0x12c0, 0x12c0, 0x12c2, 0x12c5, 0x12c8, 0x12d6, 0x12d8, 0x1310, 0x1312,
                        0x1315, 0x1318, 0x135a, 0x1380, 0x138f, 0x13a0, 0x13f5, 0x13f8, 0x13fd, 0x1401, 0x166c, 0x166f, 0x167f, 0x1681, 0x169a, 0x16a0, 0x16ea, 0x16ee, 0x16f8, 0x1700, 0x170c, 0x170e,
                        0x1711, 0x1720, 0x1731, 0x1740, 0x1751, 0x1760, 0x176c, 0x176e, 0x1770, 0x1780, 0x17b3, 0x17d7, 0x17d7, 0x17dc, 0x17dc, 0x1820, 0x1878, 0x1880, 0x18a8, 0x18aa, 0x18aa, 0x18b0,
                        0x18f5, 0x1900, 0x191e, 0x1950, 0x196d, 0x1970, 0x1974, 0x1980, 0x19ab, 0x19b0, 0x19c9, 0x1a00, 0x1a16, 0x1a20, 0x1a54, 0x1aa7, 0x1aa7, 0x1b05, 0x1b33, 0x1b45, 0x1b4b, 0x1b83,
                        0x1ba0, 0x1bae, 0x1baf, 0x1bba, 0x1be5, 0x1c00, 0x1c23, 0x1c4d, 0x1c4f, 0x1c5a, 0x1c7d, 0x1c80, 0x1c88, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1ce9, 0x1cec, 0x1cee, 0x1cf3, 0x1cf5,
                        0x1cf6, 0x1cfa, 0x1cfa, 0x1d00, 0x1dbf, 0x1e00, 0x1f15, 0x1f18, 0x1f1d, 0x1f20, 0x1f45, 0x1f48, 0x1f4d, 0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f,
                        0x1f7d, 0x1f80, 0x1fb4, 0x1fb6, 0x1fbc, 0x1fbe, 0x1fbe, 0x1fc2, 0x1fc4, 0x1fc6, 0x1fcc, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fdb, 0x1fe0, 0x1fec, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffc, 0x2071,
                        0x2071, 0x207f, 0x207f, 0x2090, 0x209c, 0x2102, 0x2102, 0x2107, 0x2107, 0x210a, 0x2113, 0x2115, 0x2115, 0x2118, 0x211d, 0x2124, 0x2124, 0x2126, 0x2126, 0x2128, 0x2128, 0x212a,
                        0x2139, 0x213c, 0x213f, 0x2145, 0x2149, 0x214e, 0x214e, 0x2160, 0x2188, 0x2c00, 0x2c2e, 0x2c30, 0x2c5e, 0x2c60, 0x2ce4, 0x2ceb, 0x2cee, 0x2cf2, 0x2cf3, 0x2d00, 0x2d25, 0x2d27,
                        0x2d27, 0x2d2d, 0x2d2d, 0x2d30, 0x2d67, 0x2d6f, 0x2d6f, 0x2d80, 0x2d96, 0x2da0, 0x2da6, 0x2da8, 0x2dae, 0x2db0, 0x2db6, 0x2db8, 0x2dbe, 0x2dc0, 0x2dc6, 0x2dc8, 0x2dce, 0x2dd0,
                        0x2dd6, 0x2dd8, 0x2dde, 0x3005, 0x3007, 0x3021, 0x3029, 0x3031, 0x3035, 0x3038, 0x303c, 0x3041, 0x3096, 0x309d, 0x309f, 0x30a1, 0x30fa, 0x30fc, 0x30ff, 0x3105, 0x312f, 0x3131,
                        0x318e, 0x31a0, 0x31ba, 0x31f0, 0x31ff, 0x3400, 0x4db5, 0x4e00, 0x9fef, 0xa000, 0xa48c, 0xa4d0, 0xa4fd, 0xa500, 0xa60c, 0xa610, 0xa61f, 0xa62a, 0xa62b, 0xa640, 0xa66e, 0xa67f,
                        0xa69d, 0xa6a0, 0xa6ef, 0xa717, 0xa71f, 0xa722, 0xa788, 0xa78b, 0xa7bf, 0xa7c2, 0xa7c6, 0xa7f7, 0xa801, 0xa803, 0xa805, 0xa807, 0xa80a, 0xa80c, 0xa822, 0xa840, 0xa873, 0xa882,
                        0xa8b3, 0xa8f2, 0xa8f7, 0xa8fb, 0xa8fb, 0xa8fd, 0xa8fe, 0xa90a, 0xa925, 0xa930, 0xa946, 0xa960, 0xa97c, 0xa984, 0xa9b2, 0xa9cf, 0xa9cf, 0xa9e0, 0xa9e4, 0xa9e6, 0xa9ef, 0xa9fa,
                        0xa9fe, 0xaa00, 0xaa28, 0xaa40, 0xaa42, 0xaa44, 0xaa4b, 0xaa60, 0xaa76, 0xaa7a, 0xaa7a, 0xaa7e, 0xaaaf, 0xaab1, 0xaab1, 0xaab5, 0xaab6, 0xaab9, 0xaabd, 0xaac0, 0xaac0, 0xaac2,
                        0xaac2, 0xaadb, 0xaadd, 0xaae0, 0xaaea, 0xaaf2, 0xaaf4, 0xab01, 0xab06, 0xab09, 0xab0e, 0xab11, 0xab16, 0xab20, 0xab26, 0xab28, 0xab2e, 0xab30, 0xab5a, 0xab5c, 0xab67, 0xab70,
                        0xabe2, 0xac00, 0xd7a3, 0xd7b0, 0xd7c6, 0xd7cb, 0xd7fb, 0xf900, 0xfa6d, 0xfa70, 0xfad9, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xfb1d, 0xfb1d, 0xfb1f, 0xfb28, 0xfb2a, 0xfb36, 0xfb38,
                        0xfb3c, 0xfb3e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfb46, 0xfbb1, 0xfbd3, 0xfc5d, 0xfc64, 0xfd3d, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0, 0xfdf9, 0xfe71, 0xfe71, 0xfe73,
                        0xfe73, 0xfe77, 0xfe77, 0xfe79, 0xfe79, 0xfe7b, 0xfe7b, 0xfe7d, 0xfe7d, 0xfe7f, 0xfefc, 0xff21, 0xff3a, 0xff41, 0xff5a, 0xff66, 0xff9d, 0xffa0, 0xffbe, 0xffc2, 0xffc7, 0xffca,
                        0xffcf, 0xffd2, 0xffd7, 0xffda, 0xffdc, 0x10000, 0x1000b, 0x1000d, 0x10026, 0x10028, 0x1003a, 0x1003c, 0x1003d, 0x1003f, 0x1004d, 0x10050, 0x1005d, 0x10080, 0x100fa, 0x10140,
                        0x10174, 0x10280, 0x1029c, 0x102a0, 0x102d0, 0x10300, 0x1031f, 0x1032d, 0x1034a, 0x10350, 0x10375, 0x10380, 0x1039d, 0x103a0, 0x103c3, 0x103c8, 0x103cf, 0x103d1, 0x103d5,
                        0x10400, 0x1049d, 0x104b0, 0x104d3, 0x104d8, 0x104fb, 0x10500, 0x10527, 0x10530, 0x10563, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, 0x10800, 0x10805, 0x10808,
                        0x10808, 0x1080a, 0x10835, 0x10837, 0x10838, 0x1083c, 0x1083c, 0x1083f, 0x10855, 0x10860, 0x10876, 0x10880, 0x1089e, 0x108e0, 0x108f2, 0x108f4, 0x108f5, 0x10900, 0x10915,
                        0x10920, 0x10939, 0x10980, 0x109b7, 0x109be, 0x109bf, 0x10a00, 0x10a00, 0x10a10, 0x10a13, 0x10a15, 0x10a17, 0x10a19, 0x10a35, 0x10a60, 0x10a7c, 0x10a80, 0x10a9c, 0x10ac0,
                        0x10ac7, 0x10ac9, 0x10ae4, 0x10b00, 0x10b35, 0x10b40, 0x10b55, 0x10b60, 0x10b72, 0x10b80, 0x10b91, 0x10c00, 0x10c48, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x10d00, 0x10d23,
                        0x10f00, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f45, 0x10fe0, 0x10ff6, 0x11003, 0x11037, 0x11083, 0x110af, 0x110d0, 0x110e8, 0x11103, 0x11126, 0x11144, 0x11144, 0x11150,
                        0x11172, 0x11176, 0x11176, 0x11183, 0x111b2, 0x111c1, 0x111c4, 0x111da, 0x111da, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x1122b, 0x11280, 0x11286, 0x11288, 0x11288,
                        0x1128a, 0x1128d, 0x1128f, 0x1129d, 0x1129f, 0x112a8, 0x112b0, 0x112de, 0x11305, 0x1130c, 0x1130f, 0x11310, 0x11313, 0x11328, 0x1132a, 0x11330, 0x11332, 0x11333, 0x11335,
                        0x11339, 0x1133d, 0x1133d, 0x11350, 0x11350, 0x1135d, 0x11361, 0x11400, 0x11434, 0x11447, 0x1144a, 0x1145f, 0x1145f, 0x11480, 0x114af, 0x114c4, 0x114c5, 0x114c7, 0x114c7,
                        0x11580, 0x115ae, 0x115d8, 0x115db, 0x11600, 0x1162f, 0x11644, 0x11644, 0x11680, 0x116aa, 0x116b8, 0x116b8, 0x11700, 0x1171a, 0x11800, 0x1182b, 0x118a0, 0x118df, 0x118ff,
                        0x118ff, 0x119a0, 0x119a7, 0x119aa, 0x119d0, 0x119e1, 0x119e1, 0x119e3, 0x119e3, 0x11a00, 0x11a00, 0x11a0b, 0x11a32, 0x11a3a, 0x11a3a, 0x11a50, 0x11a50, 0x11a5c, 0x11a89,
                        0x11a9d, 0x11a9d, 0x11ac0, 0x11af8, 0x11c00, 0x11c08, 0x11c0a, 0x11c2e, 0x11c40, 0x11c40, 0x11c72, 0x11c8f, 0x11d00, 0x11d06, 0x11d08, 0x11d09, 0x11d0b, 0x11d30, 0x11d46,
                        0x11d46, 0x11d60, 0x11d65, 0x11d67, 0x11d68, 0x11d6a, 0x11d89, 0x11d98, 0x11d98, 0x11ee0, 0x11ef2, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x13000, 0x1342e,
                        0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16ad0, 0x16aed, 0x16b00, 0x16b2f, 0x16b40, 0x16b43, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, 0x16e40, 0x16e7f, 0x16f00,
                        0x16f4a, 0x16f50, 0x16f50, 0x16f93, 0x16f9f, 0x16fe0, 0x16fe1, 0x16fe3, 0x16fe3, 0x17000, 0x187f7, 0x18800, 0x18af2, 0x1b000, 0x1b11e, 0x1b150, 0x1b152, 0x1b164, 0x1b167,
                        0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, 0x1bc70, 0x1bc7c, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5,
                        0x1d4a6, 0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c3, 0x1d4c5, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c, 0x1d51e, 0x1d539,
                        0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d552, 0x1d6a5, 0x1d6a8, 0x1d6c0, 0x1d6c2, 0x1d6da, 0x1d6dc, 0x1d6fa, 0x1d6fc, 0x1d714, 0x1d716,
                        0x1d734, 0x1d736, 0x1d74e, 0x1d750, 0x1d76e, 0x1d770, 0x1d788, 0x1d78a, 0x1d7a8, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7cb, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e14e, 0x1e14e,
                        0x1e2c0, 0x1e2eb, 0x1e800, 0x1e8c4, 0x1e900, 0x1e943, 0x1e94b, 0x1e94b, 0x1ee00, 0x1ee03, 0x1ee05, 0x1ee1f, 0x1ee21, 0x1ee22, 0x1ee24, 0x1ee24, 0x1ee27, 0x1ee27, 0x1ee29,
                        0x1ee32, 0x1ee34, 0x1ee37, 0x1ee39, 0x1ee39, 0x1ee3b, 0x1ee3b, 0x1ee42, 0x1ee42, 0x1ee47, 0x1ee47, 0x1ee49, 0x1ee49, 0x1ee4b, 0x1ee4b, 0x1ee4d, 0x1ee4f, 0x1ee51, 0x1ee52,
                        0x1ee54, 0x1ee54, 0x1ee57, 0x1ee57, 0x1ee59, 0x1ee59, 0x1ee5b, 0x1ee5b, 0x1ee5d, 0x1ee5d, 0x1ee5f, 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64, 0x1ee64, 0x1ee67, 0x1ee6a, 0x1ee6c,
                        0x1ee72, 0x1ee74, 0x1ee77, 0x1ee79, 0x1ee7c, 0x1ee7e, 0x1ee7e, 0x1ee80, 0x1ee89, 0x1ee8b, 0x1ee9b, 0x1eea1, 0x1eea3, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x20000, 0x2a6d6,
                        0x2a700, 0x2b734, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, 0x2f800, 0x2fa1d));
    }

    private static void populateGC_CC() {
        SET_ENCODINGS.put("gc=Cc", CodePointSet.createNoDedup(0x0000, 0x001f, 0x007f, 0x009f));
    }

    private static void populateGC_CF() {
        SET_ENCODINGS.put("gc=Cf",
                        CodePointSet.createNoDedup(0x00ad, 0x00ad, 0x0600, 0x0605, 0x061c, 0x061c, 0x06dd, 0x06dd, 0x070f, 0x070f, 0x08e2, 0x08e2, 0x180e, 0x180e, 0x200b, 0x200f, 0x202a, 0x202e,
                                        0x2060, 0x2064, 0x2066, 0x206f, 0xfeff, 0xfeff, 0xfff9, 0xfffb, 0x110bd, 0x110bd, 0x110cd, 0x110cd, 0x13430, 0x13438, 0x1bca0, 0x1bca3, 0x1d173, 0x1d17a,
                                        0xe0001, 0xe0001, 0xe0020, 0xe007f));
    }

    private static void populateGC_CN() {
        SET_ENCODINGS.put("gc=Cn", CodePointSet.createNoDedup(0x0378, 0x0379, 0x0380, 0x0383, 0x038b, 0x038b, 0x038d, 0x038d, 0x03a2, 0x03a2, 0x0530, 0x0530, 0x0557, 0x0558, 0x058b, 0x058c, 0x0590,
                        0x0590, 0x05c8, 0x05cf, 0x05eb, 0x05ee, 0x05f5, 0x05ff, 0x061d, 0x061d, 0x070e, 0x070e, 0x074b, 0x074c, 0x07b2, 0x07bf, 0x07fb, 0x07fc, 0x082e, 0x082f, 0x083f, 0x083f, 0x085c,
                        0x085d, 0x085f, 0x085f, 0x086b, 0x089f, 0x08b5, 0x08b5, 0x08be, 0x08d2, 0x0984, 0x0984, 0x098d, 0x098e, 0x0991, 0x0992, 0x09a9, 0x09a9, 0x09b1, 0x09b1, 0x09b3, 0x09b5, 0x09ba,
                        0x09bb, 0x09c5, 0x09c6, 0x09c9, 0x09ca, 0x09cf, 0x09d6, 0x09d8, 0x09db, 0x09de, 0x09de, 0x09e4, 0x09e5, 0x09ff, 0x0a00, 0x0a04, 0x0a04, 0x0a0b, 0x0a0e, 0x0a11, 0x0a12, 0x0a29,
                        0x0a29, 0x0a31, 0x0a31, 0x0a34, 0x0a34, 0x0a37, 0x0a37, 0x0a3a, 0x0a3b, 0x0a3d, 0x0a3d, 0x0a43, 0x0a46, 0x0a49, 0x0a4a, 0x0a4e, 0x0a50, 0x0a52, 0x0a58, 0x0a5d, 0x0a5d, 0x0a5f,
                        0x0a65, 0x0a77, 0x0a80, 0x0a84, 0x0a84, 0x0a8e, 0x0a8e, 0x0a92, 0x0a92, 0x0aa9, 0x0aa9, 0x0ab1, 0x0ab1, 0x0ab4, 0x0ab4, 0x0aba, 0x0abb, 0x0ac6, 0x0ac6, 0x0aca, 0x0aca, 0x0ace,
                        0x0acf, 0x0ad1, 0x0adf, 0x0ae4, 0x0ae5, 0x0af2, 0x0af8, 0x0b00, 0x0b00, 0x0b04, 0x0b04, 0x0b0d, 0x0b0e, 0x0b11, 0x0b12, 0x0b29, 0x0b29, 0x0b31, 0x0b31, 0x0b34, 0x0b34, 0x0b3a,
                        0x0b3b, 0x0b45, 0x0b46, 0x0b49, 0x0b4a, 0x0b4e, 0x0b55, 0x0b58, 0x0b5b, 0x0b5e, 0x0b5e, 0x0b64, 0x0b65, 0x0b78, 0x0b81, 0x0b84, 0x0b84, 0x0b8b, 0x0b8d, 0x0b91, 0x0b91, 0x0b96,
                        0x0b98, 0x0b9b, 0x0b9b, 0x0b9d, 0x0b9d, 0x0ba0, 0x0ba2, 0x0ba5, 0x0ba7, 0x0bab, 0x0bad, 0x0bba, 0x0bbd, 0x0bc3, 0x0bc5, 0x0bc9, 0x0bc9, 0x0bce, 0x0bcf, 0x0bd1, 0x0bd6, 0x0bd8,
                        0x0be5, 0x0bfb, 0x0bff, 0x0c0d, 0x0c0d, 0x0c11, 0x0c11, 0x0c29, 0x0c29, 0x0c3a, 0x0c3c, 0x0c45, 0x0c45, 0x0c49, 0x0c49, 0x0c4e, 0x0c54, 0x0c57, 0x0c57, 0x0c5b, 0x0c5f, 0x0c64,
                        0x0c65, 0x0c70, 0x0c76, 0x0c8d, 0x0c8d, 0x0c91, 0x0c91, 0x0ca9, 0x0ca9, 0x0cb4, 0x0cb4, 0x0cba, 0x0cbb, 0x0cc5, 0x0cc5, 0x0cc9, 0x0cc9, 0x0cce, 0x0cd4, 0x0cd7, 0x0cdd, 0x0cdf,
                        0x0cdf, 0x0ce4, 0x0ce5, 0x0cf0, 0x0cf0, 0x0cf3, 0x0cff, 0x0d04, 0x0d04, 0x0d0d, 0x0d0d, 0x0d11, 0x0d11, 0x0d45, 0x0d45, 0x0d49, 0x0d49, 0x0d50, 0x0d53, 0x0d64, 0x0d65, 0x0d80,
                        0x0d81, 0x0d84, 0x0d84, 0x0d97, 0x0d99, 0x0db2, 0x0db2, 0x0dbc, 0x0dbc, 0x0dbe, 0x0dbf, 0x0dc7, 0x0dc9, 0x0dcb, 0x0dce, 0x0dd5, 0x0dd5, 0x0dd7, 0x0dd7, 0x0de0, 0x0de5, 0x0df0,
                        0x0df1, 0x0df5, 0x0e00, 0x0e3b, 0x0e3e, 0x0e5c, 0x0e80, 0x0e83, 0x0e83, 0x0e85, 0x0e85, 0x0e8b, 0x0e8b, 0x0ea4, 0x0ea4, 0x0ea6, 0x0ea6, 0x0ebe, 0x0ebf, 0x0ec5, 0x0ec5, 0x0ec7,
                        0x0ec7, 0x0ece, 0x0ecf, 0x0eda, 0x0edb, 0x0ee0, 0x0eff, 0x0f48, 0x0f48, 0x0f6d, 0x0f70, 0x0f98, 0x0f98, 0x0fbd, 0x0fbd, 0x0fcd, 0x0fcd, 0x0fdb, 0x0fff, 0x10c6, 0x10c6, 0x10c8,
                        0x10cc, 0x10ce, 0x10cf, 0x1249, 0x1249, 0x124e, 0x124f, 0x1257, 0x1257, 0x1259, 0x1259, 0x125e, 0x125f, 0x1289, 0x1289, 0x128e, 0x128f, 0x12b1, 0x12b1, 0x12b6, 0x12b7, 0x12bf,
                        0x12bf, 0x12c1, 0x12c1, 0x12c6, 0x12c7, 0x12d7, 0x12d7, 0x1311, 0x1311, 0x1316, 0x1317, 0x135b, 0x135c, 0x137d, 0x137f, 0x139a, 0x139f, 0x13f6, 0x13f7, 0x13fe, 0x13ff, 0x169d,
                        0x169f, 0x16f9, 0x16ff, 0x170d, 0x170d, 0x1715, 0x171f, 0x1737, 0x173f, 0x1754, 0x175f, 0x176d, 0x176d, 0x1771, 0x1771, 0x1774, 0x177f, 0x17de, 0x17df, 0x17ea, 0x17ef, 0x17fa,
                        0x17ff, 0x180f, 0x180f, 0x181a, 0x181f, 0x1879, 0x187f, 0x18ab, 0x18af, 0x18f6, 0x18ff, 0x191f, 0x191f, 0x192c, 0x192f, 0x193c, 0x193f, 0x1941, 0x1943, 0x196e, 0x196f, 0x1975,
                        0x197f, 0x19ac, 0x19af, 0x19ca, 0x19cf, 0x19db, 0x19dd, 0x1a1c, 0x1a1d, 0x1a5f, 0x1a5f, 0x1a7d, 0x1a7e, 0x1a8a, 0x1a8f, 0x1a9a, 0x1a9f, 0x1aae, 0x1aaf, 0x1abf, 0x1aff, 0x1b4c,
                        0x1b4f, 0x1b7d, 0x1b7f, 0x1bf4, 0x1bfb, 0x1c38, 0x1c3a, 0x1c4a, 0x1c4c, 0x1c89, 0x1c8f, 0x1cbb, 0x1cbc, 0x1cc8, 0x1ccf, 0x1cfb, 0x1cff, 0x1dfa, 0x1dfa, 0x1f16, 0x1f17, 0x1f1e,
                        0x1f1f, 0x1f46, 0x1f47, 0x1f4e, 0x1f4f, 0x1f58, 0x1f58, 0x1f5a, 0x1f5a, 0x1f5c, 0x1f5c, 0x1f5e, 0x1f5e, 0x1f7e, 0x1f7f, 0x1fb5, 0x1fb5, 0x1fc5, 0x1fc5, 0x1fd4, 0x1fd5, 0x1fdc,
                        0x1fdc, 0x1ff0, 0x1ff1, 0x1ff5, 0x1ff5, 0x1fff, 0x1fff, 0x2065, 0x2065, 0x2072, 0x2073, 0x208f, 0x208f, 0x209d, 0x209f, 0x20c0, 0x20cf, 0x20f1, 0x20ff, 0x218c, 0x218f, 0x2427,
                        0x243f, 0x244b, 0x245f, 0x2b74, 0x2b75, 0x2b96, 0x2b97, 0x2c2f, 0x2c2f, 0x2c5f, 0x2c5f, 0x2cf4, 0x2cf8, 0x2d26, 0x2d26, 0x2d28, 0x2d2c, 0x2d2e, 0x2d2f, 0x2d68, 0x2d6e, 0x2d71,
                        0x2d7e, 0x2d97, 0x2d9f, 0x2da7, 0x2da7, 0x2daf, 0x2daf, 0x2db7, 0x2db7, 0x2dbf, 0x2dbf, 0x2dc7, 0x2dc7, 0x2dcf, 0x2dcf, 0x2dd7, 0x2dd7, 0x2ddf, 0x2ddf, 0x2e50, 0x2e7f, 0x2e9a,
                        0x2e9a, 0x2ef4, 0x2eff, 0x2fd6, 0x2fef, 0x2ffc, 0x2fff, 0x3040, 0x3040, 0x3097, 0x3098, 0x3100, 0x3104, 0x3130, 0x3130, 0x318f, 0x318f, 0x31bb, 0x31bf, 0x31e4, 0x31ef, 0x321f,
                        0x321f, 0x4db6, 0x4dbf, 0x9ff0, 0x9fff, 0xa48d, 0xa48f, 0xa4c7, 0xa4cf, 0xa62c, 0xa63f, 0xa6f8, 0xa6ff, 0xa7c0, 0xa7c1, 0xa7c7, 0xa7f6, 0xa82c, 0xa82f, 0xa83a, 0xa83f, 0xa878,
                        0xa87f, 0xa8c6, 0xa8cd, 0xa8da, 0xa8df, 0xa954, 0xa95e, 0xa97d, 0xa97f, 0xa9ce, 0xa9ce, 0xa9da, 0xa9dd, 0xa9ff, 0xa9ff, 0xaa37, 0xaa3f, 0xaa4e, 0xaa4f, 0xaa5a, 0xaa5b, 0xaac3,
                        0xaada, 0xaaf7, 0xab00, 0xab07, 0xab08, 0xab0f, 0xab10, 0xab17, 0xab1f, 0xab27, 0xab27, 0xab2f, 0xab2f, 0xab68, 0xab6f, 0xabee, 0xabef, 0xabfa, 0xabff, 0xd7a4, 0xd7af, 0xd7c7,
                        0xd7ca, 0xd7fc, 0xd7ff, 0xfa6e, 0xfa6f, 0xfada, 0xfaff, 0xfb07, 0xfb12, 0xfb18, 0xfb1c, 0xfb37, 0xfb37, 0xfb3d, 0xfb3d, 0xfb3f, 0xfb3f, 0xfb42, 0xfb42, 0xfb45, 0xfb45, 0xfbc2,
                        0xfbd2, 0xfd40, 0xfd4f, 0xfd90, 0xfd91, 0xfdc8, 0xfdef, 0xfdfe, 0xfdff, 0xfe1a, 0xfe1f, 0xfe53, 0xfe53, 0xfe67, 0xfe67, 0xfe6c, 0xfe6f, 0xfe75, 0xfe75, 0xfefd, 0xfefe, 0xff00,
                        0xff00, 0xffbf, 0xffc1, 0xffc8, 0xffc9, 0xffd0, 0xffd1, 0xffd8, 0xffd9, 0xffdd, 0xffdf, 0xffe7, 0xffe7, 0xffef, 0xfff8, 0xfffe, 0xffff, 0x1000c, 0x1000c, 0x10027, 0x10027,
                        0x1003b, 0x1003b, 0x1003e, 0x1003e, 0x1004e, 0x1004f, 0x1005e, 0x1007f, 0x100fb, 0x100ff, 0x10103, 0x10106, 0x10134, 0x10136, 0x1018f, 0x1018f, 0x1019c, 0x1019f, 0x101a1,
                        0x101cf, 0x101fe, 0x1027f, 0x1029d, 0x1029f, 0x102d1, 0x102df, 0x102fc, 0x102ff, 0x10324, 0x1032c, 0x1034b, 0x1034f, 0x1037b, 0x1037f, 0x1039e, 0x1039e, 0x103c4, 0x103c7,
                        0x103d6, 0x103ff, 0x1049e, 0x1049f, 0x104aa, 0x104af, 0x104d4, 0x104d7, 0x104fc, 0x104ff, 0x10528, 0x1052f, 0x10564, 0x1056e, 0x10570, 0x105ff, 0x10737, 0x1073f, 0x10756,
                        0x1075f, 0x10768, 0x107ff, 0x10806, 0x10807, 0x10809, 0x10809, 0x10836, 0x10836, 0x10839, 0x1083b, 0x1083d, 0x1083e, 0x10856, 0x10856, 0x1089f, 0x108a6, 0x108b0, 0x108df,
                        0x108f3, 0x108f3, 0x108f6, 0x108fa, 0x1091c, 0x1091e, 0x1093a, 0x1093e, 0x10940, 0x1097f, 0x109b8, 0x109bb, 0x109d0, 0x109d1, 0x10a04, 0x10a04, 0x10a07, 0x10a0b, 0x10a14,
                        0x10a14, 0x10a18, 0x10a18, 0x10a36, 0x10a37, 0x10a3b, 0x10a3e, 0x10a49, 0x10a4f, 0x10a59, 0x10a5f, 0x10aa0, 0x10abf, 0x10ae7, 0x10aea, 0x10af7, 0x10aff, 0x10b36, 0x10b38,
                        0x10b56, 0x10b57, 0x10b73, 0x10b77, 0x10b92, 0x10b98, 0x10b9d, 0x10ba8, 0x10bb0, 0x10bff, 0x10c49, 0x10c7f, 0x10cb3, 0x10cbf, 0x10cf3, 0x10cf9, 0x10d28, 0x10d2f, 0x10d3a,
                        0x10e5f, 0x10e7f, 0x10eff, 0x10f28, 0x10f2f, 0x10f5a, 0x10fdf, 0x10ff7, 0x10fff, 0x1104e, 0x11051, 0x11070, 0x1107e, 0x110c2, 0x110cc, 0x110ce, 0x110cf, 0x110e9, 0x110ef,
                        0x110fa, 0x110ff, 0x11135, 0x11135, 0x11147, 0x1114f, 0x11177, 0x1117f, 0x111ce, 0x111cf, 0x111e0, 0x111e0, 0x111f5, 0x111ff, 0x11212, 0x11212, 0x1123f, 0x1127f, 0x11287,
                        0x11287, 0x11289, 0x11289, 0x1128e, 0x1128e, 0x1129e, 0x1129e, 0x112aa, 0x112af, 0x112eb, 0x112ef, 0x112fa, 0x112ff, 0x11304, 0x11304, 0x1130d, 0x1130e, 0x11311, 0x11312,
                        0x11329, 0x11329, 0x11331, 0x11331, 0x11334, 0x11334, 0x1133a, 0x1133a, 0x11345, 0x11346, 0x11349, 0x1134a, 0x1134e, 0x1134f, 0x11351, 0x11356, 0x11358, 0x1135c, 0x11364,
                        0x11365, 0x1136d, 0x1136f, 0x11375, 0x113ff, 0x1145a, 0x1145a, 0x1145c, 0x1145c, 0x11460, 0x1147f, 0x114c8, 0x114cf, 0x114da, 0x1157f, 0x115b6, 0x115b7, 0x115de, 0x115ff,
                        0x11645, 0x1164f, 0x1165a, 0x1165f, 0x1166d, 0x1167f, 0x116b9, 0x116bf, 0x116ca, 0x116ff, 0x1171b, 0x1171c, 0x1172c, 0x1172f, 0x11740, 0x117ff, 0x1183c, 0x1189f, 0x118f3,
                        0x118fe, 0x11900, 0x1199f, 0x119a8, 0x119a9, 0x119d8, 0x119d9, 0x119e5, 0x119ff, 0x11a48, 0x11a4f, 0x11aa3, 0x11abf, 0x11af9, 0x11bff, 0x11c09, 0x11c09, 0x11c37, 0x11c37,
                        0x11c46, 0x11c4f, 0x11c6d, 0x11c6f, 0x11c90, 0x11c91, 0x11ca8, 0x11ca8, 0x11cb7, 0x11cff, 0x11d07, 0x11d07, 0x11d0a, 0x11d0a, 0x11d37, 0x11d39, 0x11d3b, 0x11d3b, 0x11d3e,
                        0x11d3e, 0x11d48, 0x11d4f, 0x11d5a, 0x11d5f, 0x11d66, 0x11d66, 0x11d69, 0x11d69, 0x11d8f, 0x11d8f, 0x11d92, 0x11d92, 0x11d99, 0x11d9f, 0x11daa, 0x11edf, 0x11ef9, 0x11fbf,
                        0x11ff2, 0x11ffe, 0x1239a, 0x123ff, 0x1246f, 0x1246f, 0x12475, 0x1247f, 0x12544, 0x12fff, 0x1342f, 0x1342f, 0x13439, 0x143ff, 0x14647, 0x167ff, 0x16a39, 0x16a3f, 0x16a5f,
                        0x16a5f, 0x16a6a, 0x16a6d, 0x16a70, 0x16acf, 0x16aee, 0x16aef, 0x16af6, 0x16aff, 0x16b46, 0x16b4f, 0x16b5a, 0x16b5a, 0x16b62, 0x16b62, 0x16b78, 0x16b7c, 0x16b90, 0x16e3f,
                        0x16e9b, 0x16eff, 0x16f4b, 0x16f4e, 0x16f88, 0x16f8e, 0x16fa0, 0x16fdf, 0x16fe4, 0x16fff, 0x187f8, 0x187ff, 0x18af3, 0x1afff, 0x1b11f, 0x1b14f, 0x1b153, 0x1b163, 0x1b168,
                        0x1b16f, 0x1b2fc, 0x1bbff, 0x1bc6b, 0x1bc6f, 0x1bc7d, 0x1bc7f, 0x1bc89, 0x1bc8f, 0x1bc9a, 0x1bc9b, 0x1bca4, 0x1cfff, 0x1d0f6, 0x1d0ff, 0x1d127, 0x1d128, 0x1d1e9, 0x1d1ff,
                        0x1d246, 0x1d2df, 0x1d2f4, 0x1d2ff, 0x1d357, 0x1d35f, 0x1d379, 0x1d3ff, 0x1d455, 0x1d455, 0x1d49d, 0x1d49d, 0x1d4a0, 0x1d4a1, 0x1d4a3, 0x1d4a4, 0x1d4a7, 0x1d4a8, 0x1d4ad,
                        0x1d4ad, 0x1d4ba, 0x1d4ba, 0x1d4bc, 0x1d4bc, 0x1d4c4, 0x1d4c4, 0x1d506, 0x1d506, 0x1d50b, 0x1d50c, 0x1d515, 0x1d515, 0x1d51d, 0x1d51d, 0x1d53a, 0x1d53a, 0x1d53f, 0x1d53f,
                        0x1d545, 0x1d545, 0x1d547, 0x1d549, 0x1d551, 0x1d551, 0x1d6a6, 0x1d6a7, 0x1d7cc, 0x1d7cd, 0x1da8c, 0x1da9a, 0x1daa0, 0x1daa0, 0x1dab0, 0x1dfff, 0x1e007, 0x1e007, 0x1e019,
                        0x1e01a, 0x1e022, 0x1e022, 0x1e025, 0x1e025, 0x1e02b, 0x1e0ff, 0x1e12d, 0x1e12f, 0x1e13e, 0x1e13f, 0x1e14a, 0x1e14d, 0x1e150, 0x1e2bf, 0x1e2fa, 0x1e2fe, 0x1e300, 0x1e7ff,
                        0x1e8c5, 0x1e8c6, 0x1e8d7, 0x1e8ff, 0x1e94c, 0x1e94f, 0x1e95a, 0x1e95d, 0x1e960, 0x1ec70, 0x1ecb5, 0x1ed00, 0x1ed3e, 0x1edff, 0x1ee04, 0x1ee04, 0x1ee20, 0x1ee20, 0x1ee23,
                        0x1ee23, 0x1ee25, 0x1ee26, 0x1ee28, 0x1ee28, 0x1ee33, 0x1ee33, 0x1ee38, 0x1ee38, 0x1ee3a, 0x1ee3a, 0x1ee3c, 0x1ee41, 0x1ee43, 0x1ee46, 0x1ee48, 0x1ee48, 0x1ee4a, 0x1ee4a,
                        0x1ee4c, 0x1ee4c, 0x1ee50, 0x1ee50, 0x1ee53, 0x1ee53, 0x1ee55, 0x1ee56, 0x1ee58, 0x1ee58, 0x1ee5a, 0x1ee5a, 0x1ee5c, 0x1ee5c, 0x1ee5e, 0x1ee5e, 0x1ee60, 0x1ee60, 0x1ee63,
                        0x1ee63, 0x1ee65, 0x1ee66, 0x1ee6b, 0x1ee6b, 0x1ee73, 0x1ee73, 0x1ee78, 0x1ee78, 0x1ee7d, 0x1ee7d, 0x1ee7f, 0x1ee7f, 0x1ee8a, 0x1ee8a, 0x1ee9c, 0x1eea0, 0x1eea4, 0x1eea4,
                        0x1eeaa, 0x1eeaa, 0x1eebc, 0x1eeef, 0x1eef2, 0x1efff, 0x1f02c, 0x1f02f, 0x1f094, 0x1f09f, 0x1f0af, 0x1f0b0, 0x1f0c0, 0x1f0c0, 0x1f0d0, 0x1f0d0, 0x1f0f6, 0x1f0ff, 0x1f10d,
                        0x1f10f, 0x1f16d, 0x1f16f, 0x1f1ad, 0x1f1e5, 0x1f203, 0x1f20f, 0x1f23c, 0x1f23f, 0x1f249, 0x1f24f, 0x1f252, 0x1f25f, 0x1f266, 0x1f2ff, 0x1f6d6, 0x1f6df, 0x1f6ed, 0x1f6ef,
                        0x1f6fb, 0x1f6ff, 0x1f774, 0x1f77f, 0x1f7d9, 0x1f7df, 0x1f7ec, 0x1f7ff, 0x1f80c, 0x1f80f, 0x1f848, 0x1f84f, 0x1f85a, 0x1f85f, 0x1f888, 0x1f88f, 0x1f8ae, 0x1f8ff, 0x1f90c,
                        0x1f90c, 0x1f972, 0x1f972, 0x1f977, 0x1f979, 0x1f9a3, 0x1f9a4, 0x1f9ab, 0x1f9ad, 0x1f9cb, 0x1f9cc, 0x1fa54, 0x1fa5f, 0x1fa6e, 0x1fa6f, 0x1fa74, 0x1fa77, 0x1fa7b, 0x1fa7f,
                        0x1fa83, 0x1fa8f, 0x1fa96, 0x1ffff, 0x2a6d7, 0x2a6ff, 0x2b735, 0x2b73f, 0x2b81e, 0x2b81f, 0x2cea2, 0x2ceaf, 0x2ebe1, 0x2f7ff, 0x2fa1e, 0xe0000, 0xe0002, 0xe001f, 0xe0080,
                        0xe00ff, 0xe01f0, 0xeffff, 0xffffe, 0xfffff, 0x10fffe, 0x10ffff));
    }

    private static void populateGC_CO() {
        SET_ENCODINGS.put("gc=Co", CodePointSet.createNoDedup(0xe000, 0xf8ff, 0xf0000, 0xffffd, 0x100000, 0x10fffd));
    }

    private static void populateGC_CS() {
        SET_ENCODINGS.put("gc=Cs", CodePointSet.createNoDedup(0xd800, 0xdfff));
    }

    private static void populateGC_LL() {
        SET_ENCODINGS.put("gc=Ll", CodePointSet.createNoDedup(0x0061, 0x007a, 0x00b5, 0x00b5, 0x00df, 0x00f6, 0x00f8, 0x00ff, 0x0101, 0x0101, 0x0103, 0x0103, 0x0105, 0x0105, 0x0107, 0x0107, 0x0109,
                        0x0109, 0x010b, 0x010b, 0x010d, 0x010d, 0x010f, 0x010f, 0x0111, 0x0111, 0x0113, 0x0113, 0x0115, 0x0115, 0x0117, 0x0117, 0x0119, 0x0119, 0x011b, 0x011b, 0x011d, 0x011d, 0x011f,
                        0x011f, 0x0121, 0x0121, 0x0123, 0x0123, 0x0125, 0x0125, 0x0127, 0x0127, 0x0129, 0x0129, 0x012b, 0x012b, 0x012d, 0x012d, 0x012f, 0x012f, 0x0131, 0x0131, 0x0133, 0x0133, 0x0135,
                        0x0135, 0x0137, 0x0138, 0x013a, 0x013a, 0x013c, 0x013c, 0x013e, 0x013e, 0x0140, 0x0140, 0x0142, 0x0142, 0x0144, 0x0144, 0x0146, 0x0146, 0x0148, 0x0149, 0x014b, 0x014b, 0x014d,
                        0x014d, 0x014f, 0x014f, 0x0151, 0x0151, 0x0153, 0x0153, 0x0155, 0x0155, 0x0157, 0x0157, 0x0159, 0x0159, 0x015b, 0x015b, 0x015d, 0x015d, 0x015f, 0x015f, 0x0161, 0x0161, 0x0163,
                        0x0163, 0x0165, 0x0165, 0x0167, 0x0167, 0x0169, 0x0169, 0x016b, 0x016b, 0x016d, 0x016d, 0x016f, 0x016f, 0x0171, 0x0171, 0x0173, 0x0173, 0x0175, 0x0175, 0x0177, 0x0177, 0x017a,
                        0x017a, 0x017c, 0x017c, 0x017e, 0x0180, 0x0183, 0x0183, 0x0185, 0x0185, 0x0188, 0x0188, 0x018c, 0x018d, 0x0192, 0x0192, 0x0195, 0x0195, 0x0199, 0x019b, 0x019e, 0x019e, 0x01a1,
                        0x01a1, 0x01a3, 0x01a3, 0x01a5, 0x01a5, 0x01a8, 0x01a8, 0x01aa, 0x01ab, 0x01ad, 0x01ad, 0x01b0, 0x01b0, 0x01b4, 0x01b4, 0x01b6, 0x01b6, 0x01b9, 0x01ba, 0x01bd, 0x01bf, 0x01c6,
                        0x01c6, 0x01c9, 0x01c9, 0x01cc, 0x01cc, 0x01ce, 0x01ce, 0x01d0, 0x01d0, 0x01d2, 0x01d2, 0x01d4, 0x01d4, 0x01d6, 0x01d6, 0x01d8, 0x01d8, 0x01da, 0x01da, 0x01dc, 0x01dd, 0x01df,
                        0x01df, 0x01e1, 0x01e1, 0x01e3, 0x01e3, 0x01e5, 0x01e5, 0x01e7, 0x01e7, 0x01e9, 0x01e9, 0x01eb, 0x01eb, 0x01ed, 0x01ed, 0x01ef, 0x01f0, 0x01f3, 0x01f3, 0x01f5, 0x01f5, 0x01f9,
                        0x01f9, 0x01fb, 0x01fb, 0x01fd, 0x01fd, 0x01ff, 0x01ff, 0x0201, 0x0201, 0x0203, 0x0203, 0x0205, 0x0205, 0x0207, 0x0207, 0x0209, 0x0209, 0x020b, 0x020b, 0x020d, 0x020d, 0x020f,
                        0x020f, 0x0211, 0x0211, 0x0213, 0x0213, 0x0215, 0x0215, 0x0217, 0x0217, 0x0219, 0x0219, 0x021b, 0x021b, 0x021d, 0x021d, 0x021f, 0x021f, 0x0221, 0x0221, 0x0223, 0x0223, 0x0225,
                        0x0225, 0x0227, 0x0227, 0x0229, 0x0229, 0x022b, 0x022b, 0x022d, 0x022d, 0x022f, 0x022f, 0x0231, 0x0231, 0x0233, 0x0239, 0x023c, 0x023c, 0x023f, 0x0240, 0x0242, 0x0242, 0x0247,
                        0x0247, 0x0249, 0x0249, 0x024b, 0x024b, 0x024d, 0x024d, 0x024f, 0x0293, 0x0295, 0x02af, 0x0371, 0x0371, 0x0373, 0x0373, 0x0377, 0x0377, 0x037b, 0x037d, 0x0390, 0x0390, 0x03ac,
                        0x03ce, 0x03d0, 0x03d1, 0x03d5, 0x03d7, 0x03d9, 0x03d9, 0x03db, 0x03db, 0x03dd, 0x03dd, 0x03df, 0x03df, 0x03e1, 0x03e1, 0x03e3, 0x03e3, 0x03e5, 0x03e5, 0x03e7, 0x03e7, 0x03e9,
                        0x03e9, 0x03eb, 0x03eb, 0x03ed, 0x03ed, 0x03ef, 0x03f3, 0x03f5, 0x03f5, 0x03f8, 0x03f8, 0x03fb, 0x03fc, 0x0430, 0x045f, 0x0461, 0x0461, 0x0463, 0x0463, 0x0465, 0x0465, 0x0467,
                        0x0467, 0x0469, 0x0469, 0x046b, 0x046b, 0x046d, 0x046d, 0x046f, 0x046f, 0x0471, 0x0471, 0x0473, 0x0473, 0x0475, 0x0475, 0x0477, 0x0477, 0x0479, 0x0479, 0x047b, 0x047b, 0x047d,
                        0x047d, 0x047f, 0x047f, 0x0481, 0x0481, 0x048b, 0x048b, 0x048d, 0x048d, 0x048f, 0x048f, 0x0491, 0x0491, 0x0493, 0x0493, 0x0495, 0x0495, 0x0497, 0x0497, 0x0499, 0x0499, 0x049b,
                        0x049b, 0x049d, 0x049d, 0x049f, 0x049f, 0x04a1, 0x04a1, 0x04a3, 0x04a3, 0x04a5, 0x04a5, 0x04a7, 0x04a7, 0x04a9, 0x04a9, 0x04ab, 0x04ab, 0x04ad, 0x04ad, 0x04af, 0x04af, 0x04b1,
                        0x04b1, 0x04b3, 0x04b3, 0x04b5, 0x04b5, 0x04b7, 0x04b7, 0x04b9, 0x04b9, 0x04bb, 0x04bb, 0x04bd, 0x04bd, 0x04bf, 0x04bf, 0x04c2, 0x04c2, 0x04c4, 0x04c4, 0x04c6, 0x04c6, 0x04c8,
                        0x04c8, 0x04ca, 0x04ca, 0x04cc, 0x04cc, 0x04ce, 0x04cf, 0x04d1, 0x04d1, 0x04d3, 0x04d3, 0x04d5, 0x04d5, 0x04d7, 0x04d7, 0x04d9, 0x04d9, 0x04db, 0x04db, 0x04dd, 0x04dd, 0x04df,
                        0x04df, 0x04e1, 0x04e1, 0x04e3, 0x04e3, 0x04e5, 0x04e5, 0x04e7, 0x04e7, 0x04e9, 0x04e9, 0x04eb, 0x04eb, 0x04ed, 0x04ed, 0x04ef, 0x04ef, 0x04f1, 0x04f1, 0x04f3, 0x04f3, 0x04f5,
                        0x04f5, 0x04f7, 0x04f7, 0x04f9, 0x04f9, 0x04fb, 0x04fb, 0x04fd, 0x04fd, 0x04ff, 0x04ff, 0x0501, 0x0501, 0x0503, 0x0503, 0x0505, 0x0505, 0x0507, 0x0507, 0x0509, 0x0509, 0x050b,
                        0x050b, 0x050d, 0x050d, 0x050f, 0x050f, 0x0511, 0x0511, 0x0513, 0x0513, 0x0515, 0x0515, 0x0517, 0x0517, 0x0519, 0x0519, 0x051b, 0x051b, 0x051d, 0x051d, 0x051f, 0x051f, 0x0521,
                        0x0521, 0x0523, 0x0523, 0x0525, 0x0525, 0x0527, 0x0527, 0x0529, 0x0529, 0x052b, 0x052b, 0x052d, 0x052d, 0x052f, 0x052f, 0x0560, 0x0588, 0x10d0, 0x10fa, 0x10fd, 0x10ff, 0x13f8,
                        0x13fd, 0x1c80, 0x1c88, 0x1d00, 0x1d2b, 0x1d6b, 0x1d77, 0x1d79, 0x1d9a, 0x1e01, 0x1e01, 0x1e03, 0x1e03, 0x1e05, 0x1e05, 0x1e07, 0x1e07, 0x1e09, 0x1e09, 0x1e0b, 0x1e0b, 0x1e0d,
                        0x1e0d, 0x1e0f, 0x1e0f, 0x1e11, 0x1e11, 0x1e13, 0x1e13, 0x1e15, 0x1e15, 0x1e17, 0x1e17, 0x1e19, 0x1e19, 0x1e1b, 0x1e1b, 0x1e1d, 0x1e1d, 0x1e1f, 0x1e1f, 0x1e21, 0x1e21, 0x1e23,
                        0x1e23, 0x1e25, 0x1e25, 0x1e27, 0x1e27, 0x1e29, 0x1e29, 0x1e2b, 0x1e2b, 0x1e2d, 0x1e2d, 0x1e2f, 0x1e2f, 0x1e31, 0x1e31, 0x1e33, 0x1e33, 0x1e35, 0x1e35, 0x1e37, 0x1e37, 0x1e39,
                        0x1e39, 0x1e3b, 0x1e3b, 0x1e3d, 0x1e3d, 0x1e3f, 0x1e3f, 0x1e41, 0x1e41, 0x1e43, 0x1e43, 0x1e45, 0x1e45, 0x1e47, 0x1e47, 0x1e49, 0x1e49, 0x1e4b, 0x1e4b, 0x1e4d, 0x1e4d, 0x1e4f,
                        0x1e4f, 0x1e51, 0x1e51, 0x1e53, 0x1e53, 0x1e55, 0x1e55, 0x1e57, 0x1e57, 0x1e59, 0x1e59, 0x1e5b, 0x1e5b, 0x1e5d, 0x1e5d, 0x1e5f, 0x1e5f, 0x1e61, 0x1e61, 0x1e63, 0x1e63, 0x1e65,
                        0x1e65, 0x1e67, 0x1e67, 0x1e69, 0x1e69, 0x1e6b, 0x1e6b, 0x1e6d, 0x1e6d, 0x1e6f, 0x1e6f, 0x1e71, 0x1e71, 0x1e73, 0x1e73, 0x1e75, 0x1e75, 0x1e77, 0x1e77, 0x1e79, 0x1e79, 0x1e7b,
                        0x1e7b, 0x1e7d, 0x1e7d, 0x1e7f, 0x1e7f, 0x1e81, 0x1e81, 0x1e83, 0x1e83, 0x1e85, 0x1e85, 0x1e87, 0x1e87, 0x1e89, 0x1e89, 0x1e8b, 0x1e8b, 0x1e8d, 0x1e8d, 0x1e8f, 0x1e8f, 0x1e91,
                        0x1e91, 0x1e93, 0x1e93, 0x1e95, 0x1e9d, 0x1e9f, 0x1e9f, 0x1ea1, 0x1ea1, 0x1ea3, 0x1ea3, 0x1ea5, 0x1ea5, 0x1ea7, 0x1ea7, 0x1ea9, 0x1ea9, 0x1eab, 0x1eab, 0x1ead, 0x1ead, 0x1eaf,
                        0x1eaf, 0x1eb1, 0x1eb1, 0x1eb3, 0x1eb3, 0x1eb5, 0x1eb5, 0x1eb7, 0x1eb7, 0x1eb9, 0x1eb9, 0x1ebb, 0x1ebb, 0x1ebd, 0x1ebd, 0x1ebf, 0x1ebf, 0x1ec1, 0x1ec1, 0x1ec3, 0x1ec3, 0x1ec5,
                        0x1ec5, 0x1ec7, 0x1ec7, 0x1ec9, 0x1ec9, 0x1ecb, 0x1ecb, 0x1ecd, 0x1ecd, 0x1ecf, 0x1ecf, 0x1ed1, 0x1ed1, 0x1ed3, 0x1ed3, 0x1ed5, 0x1ed5, 0x1ed7, 0x1ed7, 0x1ed9, 0x1ed9, 0x1edb,
                        0x1edb, 0x1edd, 0x1edd, 0x1edf, 0x1edf, 0x1ee1, 0x1ee1, 0x1ee3, 0x1ee3, 0x1ee5, 0x1ee5, 0x1ee7, 0x1ee7, 0x1ee9, 0x1ee9, 0x1eeb, 0x1eeb, 0x1eed, 0x1eed, 0x1eef, 0x1eef, 0x1ef1,
                        0x1ef1, 0x1ef3, 0x1ef3, 0x1ef5, 0x1ef5, 0x1ef7, 0x1ef7, 0x1ef9, 0x1ef9, 0x1efb, 0x1efb, 0x1efd, 0x1efd, 0x1eff, 0x1f07, 0x1f10, 0x1f15, 0x1f20, 0x1f27, 0x1f30, 0x1f37, 0x1f40,
                        0x1f45, 0x1f50, 0x1f57, 0x1f60, 0x1f67, 0x1f70, 0x1f7d, 0x1f80, 0x1f87, 0x1f90, 0x1f97, 0x1fa0, 0x1fa7, 0x1fb0, 0x1fb4, 0x1fb6, 0x1fb7, 0x1fbe, 0x1fbe, 0x1fc2, 0x1fc4, 0x1fc6,
                        0x1fc7, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fd7, 0x1fe0, 0x1fe7, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ff7, 0x210a, 0x210a, 0x210e, 0x210f, 0x2113, 0x2113, 0x212f, 0x212f, 0x2134, 0x2134, 0x2139,
                        0x2139, 0x213c, 0x213d, 0x2146, 0x2149, 0x214e, 0x214e, 0x2184, 0x2184, 0x2c30, 0x2c5e, 0x2c61, 0x2c61, 0x2c65, 0x2c66, 0x2c68, 0x2c68, 0x2c6a, 0x2c6a, 0x2c6c, 0x2c6c, 0x2c71,
                        0x2c71, 0x2c73, 0x2c74, 0x2c76, 0x2c7b, 0x2c81, 0x2c81, 0x2c83, 0x2c83, 0x2c85, 0x2c85, 0x2c87, 0x2c87, 0x2c89, 0x2c89, 0x2c8b, 0x2c8b, 0x2c8d, 0x2c8d, 0x2c8f, 0x2c8f, 0x2c91,
                        0x2c91, 0x2c93, 0x2c93, 0x2c95, 0x2c95, 0x2c97, 0x2c97, 0x2c99, 0x2c99, 0x2c9b, 0x2c9b, 0x2c9d, 0x2c9d, 0x2c9f, 0x2c9f, 0x2ca1, 0x2ca1, 0x2ca3, 0x2ca3, 0x2ca5, 0x2ca5, 0x2ca7,
                        0x2ca7, 0x2ca9, 0x2ca9, 0x2cab, 0x2cab, 0x2cad, 0x2cad, 0x2caf, 0x2caf, 0x2cb1, 0x2cb1, 0x2cb3, 0x2cb3, 0x2cb5, 0x2cb5, 0x2cb7, 0x2cb7, 0x2cb9, 0x2cb9, 0x2cbb, 0x2cbb, 0x2cbd,
                        0x2cbd, 0x2cbf, 0x2cbf, 0x2cc1, 0x2cc1, 0x2cc3, 0x2cc3, 0x2cc5, 0x2cc5, 0x2cc7, 0x2cc7, 0x2cc9, 0x2cc9, 0x2ccb, 0x2ccb, 0x2ccd, 0x2ccd, 0x2ccf, 0x2ccf, 0x2cd1, 0x2cd1, 0x2cd3,
                        0x2cd3, 0x2cd5, 0x2cd5, 0x2cd7, 0x2cd7, 0x2cd9, 0x2cd9, 0x2cdb, 0x2cdb, 0x2cdd, 0x2cdd, 0x2cdf, 0x2cdf, 0x2ce1, 0x2ce1, 0x2ce3, 0x2ce4, 0x2cec, 0x2cec, 0x2cee, 0x2cee, 0x2cf3,
                        0x2cf3, 0x2d00, 0x2d25, 0x2d27, 0x2d27, 0x2d2d, 0x2d2d, 0xa641, 0xa641, 0xa643, 0xa643, 0xa645, 0xa645, 0xa647, 0xa647, 0xa649, 0xa649, 0xa64b, 0xa64b, 0xa64d, 0xa64d, 0xa64f,
                        0xa64f, 0xa651, 0xa651, 0xa653, 0xa653, 0xa655, 0xa655, 0xa657, 0xa657, 0xa659, 0xa659, 0xa65b, 0xa65b, 0xa65d, 0xa65d, 0xa65f, 0xa65f, 0xa661, 0xa661, 0xa663, 0xa663, 0xa665,
                        0xa665, 0xa667, 0xa667, 0xa669, 0xa669, 0xa66b, 0xa66b, 0xa66d, 0xa66d, 0xa681, 0xa681, 0xa683, 0xa683, 0xa685, 0xa685, 0xa687, 0xa687, 0xa689, 0xa689, 0xa68b, 0xa68b, 0xa68d,
                        0xa68d, 0xa68f, 0xa68f, 0xa691, 0xa691, 0xa693, 0xa693, 0xa695, 0xa695, 0xa697, 0xa697, 0xa699, 0xa699, 0xa69b, 0xa69b, 0xa723, 0xa723, 0xa725, 0xa725, 0xa727, 0xa727, 0xa729,
                        0xa729, 0xa72b, 0xa72b, 0xa72d, 0xa72d, 0xa72f, 0xa731, 0xa733, 0xa733, 0xa735, 0xa735, 0xa737, 0xa737, 0xa739, 0xa739, 0xa73b, 0xa73b, 0xa73d, 0xa73d, 0xa73f, 0xa73f, 0xa741,
                        0xa741, 0xa743, 0xa743, 0xa745, 0xa745, 0xa747, 0xa747, 0xa749, 0xa749, 0xa74b, 0xa74b, 0xa74d, 0xa74d, 0xa74f, 0xa74f, 0xa751, 0xa751, 0xa753, 0xa753, 0xa755, 0xa755, 0xa757,
                        0xa757, 0xa759, 0xa759, 0xa75b, 0xa75b, 0xa75d, 0xa75d, 0xa75f, 0xa75f, 0xa761, 0xa761, 0xa763, 0xa763, 0xa765, 0xa765, 0xa767, 0xa767, 0xa769, 0xa769, 0xa76b, 0xa76b, 0xa76d,
                        0xa76d, 0xa76f, 0xa76f, 0xa771, 0xa778, 0xa77a, 0xa77a, 0xa77c, 0xa77c, 0xa77f, 0xa77f, 0xa781, 0xa781, 0xa783, 0xa783, 0xa785, 0xa785, 0xa787, 0xa787, 0xa78c, 0xa78c, 0xa78e,
                        0xa78e, 0xa791, 0xa791, 0xa793, 0xa795, 0xa797, 0xa797, 0xa799, 0xa799, 0xa79b, 0xa79b, 0xa79d, 0xa79d, 0xa79f, 0xa79f, 0xa7a1, 0xa7a1, 0xa7a3, 0xa7a3, 0xa7a5, 0xa7a5, 0xa7a7,
                        0xa7a7, 0xa7a9, 0xa7a9, 0xa7af, 0xa7af, 0xa7b5, 0xa7b5, 0xa7b7, 0xa7b7, 0xa7b9, 0xa7b9, 0xa7bb, 0xa7bb, 0xa7bd, 0xa7bd, 0xa7bf, 0xa7bf, 0xa7c3, 0xa7c3, 0xa7fa, 0xa7fa, 0xab30,
                        0xab5a, 0xab60, 0xab67, 0xab70, 0xabbf, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xff41, 0xff5a, 0x10428, 0x1044f, 0x104d8, 0x104fb, 0x10cc0, 0x10cf2, 0x118c0, 0x118df, 0x16e60,
                        0x16e7f, 0x1d41a, 0x1d433, 0x1d44e, 0x1d454, 0x1d456, 0x1d467, 0x1d482, 0x1d49b, 0x1d4b6, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c3, 0x1d4c5, 0x1d4cf, 0x1d4ea, 0x1d503,
                        0x1d51e, 0x1d537, 0x1d552, 0x1d56b, 0x1d586, 0x1d59f, 0x1d5ba, 0x1d5d3, 0x1d5ee, 0x1d607, 0x1d622, 0x1d63b, 0x1d656, 0x1d66f, 0x1d68a, 0x1d6a5, 0x1d6c2, 0x1d6da, 0x1d6dc,
                        0x1d6e1, 0x1d6fc, 0x1d714, 0x1d716, 0x1d71b, 0x1d736, 0x1d74e, 0x1d750, 0x1d755, 0x1d770, 0x1d788, 0x1d78a, 0x1d78f, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7c9, 0x1d7cb, 0x1d7cb,
                        0x1e922, 0x1e943));
    }

    private static void populateGC_LM() {
        SET_ENCODINGS.put("gc=Lm", CodePointSet.createNoDedup(0x02b0, 0x02c1, 0x02c6, 0x02d1, 0x02e0, 0x02e4, 0x02ec, 0x02ec, 0x02ee, 0x02ee, 0x0374, 0x0374, 0x037a, 0x037a, 0x0559, 0x0559, 0x0640,
                        0x0640, 0x06e5, 0x06e6, 0x07f4, 0x07f5, 0x07fa, 0x07fa, 0x081a, 0x081a, 0x0824, 0x0824, 0x0828, 0x0828, 0x0971, 0x0971, 0x0e46, 0x0e46, 0x0ec6, 0x0ec6, 0x10fc, 0x10fc, 0x17d7,
                        0x17d7, 0x1843, 0x1843, 0x1aa7, 0x1aa7, 0x1c78, 0x1c7d, 0x1d2c, 0x1d6a, 0x1d78, 0x1d78, 0x1d9b, 0x1dbf, 0x2071, 0x2071, 0x207f, 0x207f, 0x2090, 0x209c, 0x2c7c, 0x2c7d, 0x2d6f,
                        0x2d6f, 0x2e2f, 0x2e2f, 0x3005, 0x3005, 0x3031, 0x3035, 0x303b, 0x303b, 0x309d, 0x309e, 0x30fc, 0x30fe, 0xa015, 0xa015, 0xa4f8, 0xa4fd, 0xa60c, 0xa60c, 0xa67f, 0xa67f, 0xa69c,
                        0xa69d, 0xa717, 0xa71f, 0xa770, 0xa770, 0xa788, 0xa788, 0xa7f8, 0xa7f9, 0xa9cf, 0xa9cf, 0xa9e6, 0xa9e6, 0xaa70, 0xaa70, 0xaadd, 0xaadd, 0xaaf3, 0xaaf4, 0xab5c, 0xab5f, 0xff70,
                        0xff70, 0xff9e, 0xff9f, 0x16b40, 0x16b43, 0x16f93, 0x16f9f, 0x16fe0, 0x16fe1, 0x16fe3, 0x16fe3, 0x1e137, 0x1e13d, 0x1e94b, 0x1e94b));
    }

    private static void populateGC_LO() {
        SET_ENCODINGS.put("gc=Lo", CodePointSet.createNoDedup(0x00aa, 0x00aa, 0x00ba, 0x00ba, 0x01bb, 0x01bb, 0x01c0, 0x01c3, 0x0294, 0x0294, 0x05d0, 0x05ea, 0x05ef, 0x05f2, 0x0620, 0x063f, 0x0641,
                        0x064a, 0x066e, 0x066f, 0x0671, 0x06d3, 0x06d5, 0x06d5, 0x06ee, 0x06ef, 0x06fa, 0x06fc, 0x06ff, 0x06ff, 0x0710, 0x0710, 0x0712, 0x072f, 0x074d, 0x07a5, 0x07b1, 0x07b1, 0x07ca,
                        0x07ea, 0x0800, 0x0815, 0x0840, 0x0858, 0x0860, 0x086a, 0x08a0, 0x08b4, 0x08b6, 0x08bd, 0x0904, 0x0939, 0x093d, 0x093d, 0x0950, 0x0950, 0x0958, 0x0961, 0x0972, 0x0980, 0x0985,
                        0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, 0x09aa, 0x09b0, 0x09b2, 0x09b2, 0x09b6, 0x09b9, 0x09bd, 0x09bd, 0x09ce, 0x09ce, 0x09dc, 0x09dd, 0x09df, 0x09e1, 0x09f0, 0x09f1, 0x09fc,
                        0x09fc, 0x0a05, 0x0a0a, 0x0a0f, 0x0a10, 0x0a13, 0x0a28, 0x0a2a, 0x0a30, 0x0a32, 0x0a33, 0x0a35, 0x0a36, 0x0a38, 0x0a39, 0x0a59, 0x0a5c, 0x0a5e, 0x0a5e, 0x0a72, 0x0a74, 0x0a85,
                        0x0a8d, 0x0a8f, 0x0a91, 0x0a93, 0x0aa8, 0x0aaa, 0x0ab0, 0x0ab2, 0x0ab3, 0x0ab5, 0x0ab9, 0x0abd, 0x0abd, 0x0ad0, 0x0ad0, 0x0ae0, 0x0ae1, 0x0af9, 0x0af9, 0x0b05, 0x0b0c, 0x0b0f,
                        0x0b10, 0x0b13, 0x0b28, 0x0b2a, 0x0b30, 0x0b32, 0x0b33, 0x0b35, 0x0b39, 0x0b3d, 0x0b3d, 0x0b5c, 0x0b5d, 0x0b5f, 0x0b61, 0x0b71, 0x0b71, 0x0b83, 0x0b83, 0x0b85, 0x0b8a, 0x0b8e,
                        0x0b90, 0x0b92, 0x0b95, 0x0b99, 0x0b9a, 0x0b9c, 0x0b9c, 0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0ba8, 0x0baa, 0x0bae, 0x0bb9, 0x0bd0, 0x0bd0, 0x0c05, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12,
                        0x0c28, 0x0c2a, 0x0c39, 0x0c3d, 0x0c3d, 0x0c58, 0x0c5a, 0x0c60, 0x0c61, 0x0c80, 0x0c80, 0x0c85, 0x0c8c, 0x0c8e, 0x0c90, 0x0c92, 0x0ca8, 0x0caa, 0x0cb3, 0x0cb5, 0x0cb9, 0x0cbd,
                        0x0cbd, 0x0cde, 0x0cde, 0x0ce0, 0x0ce1, 0x0cf1, 0x0cf2, 0x0d05, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d3a, 0x0d3d, 0x0d3d, 0x0d4e, 0x0d4e, 0x0d54, 0x0d56, 0x0d5f, 0x0d61, 0x0d7a,
                        0x0d7f, 0x0d85, 0x0d96, 0x0d9a, 0x0db1, 0x0db3, 0x0dbb, 0x0dbd, 0x0dbd, 0x0dc0, 0x0dc6, 0x0e01, 0x0e30, 0x0e32, 0x0e33, 0x0e40, 0x0e45, 0x0e81, 0x0e82, 0x0e84, 0x0e84, 0x0e86,
                        0x0e8a, 0x0e8c, 0x0ea3, 0x0ea5, 0x0ea5, 0x0ea7, 0x0eb0, 0x0eb2, 0x0eb3, 0x0ebd, 0x0ebd, 0x0ec0, 0x0ec4, 0x0edc, 0x0edf, 0x0f00, 0x0f00, 0x0f40, 0x0f47, 0x0f49, 0x0f6c, 0x0f88,
                        0x0f8c, 0x1000, 0x102a, 0x103f, 0x103f, 0x1050, 0x1055, 0x105a, 0x105d, 0x1061, 0x1061, 0x1065, 0x1066, 0x106e, 0x1070, 0x1075, 0x1081, 0x108e, 0x108e, 0x1100, 0x1248, 0x124a,
                        0x124d, 0x1250, 0x1256, 0x1258, 0x1258, 0x125a, 0x125d, 0x1260, 0x1288, 0x128a, 0x128d, 0x1290, 0x12b0, 0x12b2, 0x12b5, 0x12b8, 0x12be, 0x12c0, 0x12c0, 0x12c2, 0x12c5, 0x12c8,
                        0x12d6, 0x12d8, 0x1310, 0x1312, 0x1315, 0x1318, 0x135a, 0x1380, 0x138f, 0x1401, 0x166c, 0x166f, 0x167f, 0x1681, 0x169a, 0x16a0, 0x16ea, 0x16f1, 0x16f8, 0x1700, 0x170c, 0x170e,
                        0x1711, 0x1720, 0x1731, 0x1740, 0x1751, 0x1760, 0x176c, 0x176e, 0x1770, 0x1780, 0x17b3, 0x17dc, 0x17dc, 0x1820, 0x1842, 0x1844, 0x1878, 0x1880, 0x1884, 0x1887, 0x18a8, 0x18aa,
                        0x18aa, 0x18b0, 0x18f5, 0x1900, 0x191e, 0x1950, 0x196d, 0x1970, 0x1974, 0x1980, 0x19ab, 0x19b0, 0x19c9, 0x1a00, 0x1a16, 0x1a20, 0x1a54, 0x1b05, 0x1b33, 0x1b45, 0x1b4b, 0x1b83,
                        0x1ba0, 0x1bae, 0x1baf, 0x1bba, 0x1be5, 0x1c00, 0x1c23, 0x1c4d, 0x1c4f, 0x1c5a, 0x1c77, 0x1ce9, 0x1cec, 0x1cee, 0x1cf3, 0x1cf5, 0x1cf6, 0x1cfa, 0x1cfa, 0x2135, 0x2138, 0x2d30,
                        0x2d67, 0x2d80, 0x2d96, 0x2da0, 0x2da6, 0x2da8, 0x2dae, 0x2db0, 0x2db6, 0x2db8, 0x2dbe, 0x2dc0, 0x2dc6, 0x2dc8, 0x2dce, 0x2dd0, 0x2dd6, 0x2dd8, 0x2dde, 0x3006, 0x3006, 0x303c,
                        0x303c, 0x3041, 0x3096, 0x309f, 0x309f, 0x30a1, 0x30fa, 0x30ff, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, 0x31a0, 0x31ba, 0x31f0, 0x31ff, 0x3400, 0x4db5, 0x4e00, 0x9fef, 0xa000,
                        0xa014, 0xa016, 0xa48c, 0xa4d0, 0xa4f7, 0xa500, 0xa60b, 0xa610, 0xa61f, 0xa62a, 0xa62b, 0xa66e, 0xa66e, 0xa6a0, 0xa6e5, 0xa78f, 0xa78f, 0xa7f7, 0xa7f7, 0xa7fb, 0xa801, 0xa803,
                        0xa805, 0xa807, 0xa80a, 0xa80c, 0xa822, 0xa840, 0xa873, 0xa882, 0xa8b3, 0xa8f2, 0xa8f7, 0xa8fb, 0xa8fb, 0xa8fd, 0xa8fe, 0xa90a, 0xa925, 0xa930, 0xa946, 0xa960, 0xa97c, 0xa984,
                        0xa9b2, 0xa9e0, 0xa9e4, 0xa9e7, 0xa9ef, 0xa9fa, 0xa9fe, 0xaa00, 0xaa28, 0xaa40, 0xaa42, 0xaa44, 0xaa4b, 0xaa60, 0xaa6f, 0xaa71, 0xaa76, 0xaa7a, 0xaa7a, 0xaa7e, 0xaaaf, 0xaab1,
                        0xaab1, 0xaab5, 0xaab6, 0xaab9, 0xaabd, 0xaac0, 0xaac0, 0xaac2, 0xaac2, 0xaadb, 0xaadc, 0xaae0, 0xaaea, 0xaaf2, 0xaaf2, 0xab01, 0xab06, 0xab09, 0xab0e, 0xab11, 0xab16, 0xab20,
                        0xab26, 0xab28, 0xab2e, 0xabc0, 0xabe2, 0xac00, 0xd7a3, 0xd7b0, 0xd7c6, 0xd7cb, 0xd7fb, 0xf900, 0xfa6d, 0xfa70, 0xfad9, 0xfb1d, 0xfb1d, 0xfb1f, 0xfb28, 0xfb2a, 0xfb36, 0xfb38,
                        0xfb3c, 0xfb3e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfb46, 0xfbb1, 0xfbd3, 0xfd3d, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0, 0xfdfb, 0xfe70, 0xfe74, 0xfe76, 0xfefc, 0xff66,
                        0xff6f, 0xff71, 0xff9d, 0xffa0, 0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, 0xffda, 0xffdc, 0x10000, 0x1000b, 0x1000d, 0x10026, 0x10028, 0x1003a, 0x1003c, 0x1003d,
                        0x1003f, 0x1004d, 0x10050, 0x1005d, 0x10080, 0x100fa, 0x10280, 0x1029c, 0x102a0, 0x102d0, 0x10300, 0x1031f, 0x1032d, 0x10340, 0x10342, 0x10349, 0x10350, 0x10375, 0x10380,
                        0x1039d, 0x103a0, 0x103c3, 0x103c8, 0x103cf, 0x10450, 0x1049d, 0x10500, 0x10527, 0x10530, 0x10563, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, 0x10800, 0x10805,
                        0x10808, 0x10808, 0x1080a, 0x10835, 0x10837, 0x10838, 0x1083c, 0x1083c, 0x1083f, 0x10855, 0x10860, 0x10876, 0x10880, 0x1089e, 0x108e0, 0x108f2, 0x108f4, 0x108f5, 0x10900,
                        0x10915, 0x10920, 0x10939, 0x10980, 0x109b7, 0x109be, 0x109bf, 0x10a00, 0x10a00, 0x10a10, 0x10a13, 0x10a15, 0x10a17, 0x10a19, 0x10a35, 0x10a60, 0x10a7c, 0x10a80, 0x10a9c,
                        0x10ac0, 0x10ac7, 0x10ac9, 0x10ae4, 0x10b00, 0x10b35, 0x10b40, 0x10b55, 0x10b60, 0x10b72, 0x10b80, 0x10b91, 0x10c00, 0x10c48, 0x10d00, 0x10d23, 0x10f00, 0x10f1c, 0x10f27,
                        0x10f27, 0x10f30, 0x10f45, 0x10fe0, 0x10ff6, 0x11003, 0x11037, 0x11083, 0x110af, 0x110d0, 0x110e8, 0x11103, 0x11126, 0x11144, 0x11144, 0x11150, 0x11172, 0x11176, 0x11176,
                        0x11183, 0x111b2, 0x111c1, 0x111c4, 0x111da, 0x111da, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x1122b, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, 0x1128f,
                        0x1129d, 0x1129f, 0x112a8, 0x112b0, 0x112de, 0x11305, 0x1130c, 0x1130f, 0x11310, 0x11313, 0x11328, 0x1132a, 0x11330, 0x11332, 0x11333, 0x11335, 0x11339, 0x1133d, 0x1133d,
                        0x11350, 0x11350, 0x1135d, 0x11361, 0x11400, 0x11434, 0x11447, 0x1144a, 0x1145f, 0x1145f, 0x11480, 0x114af, 0x114c4, 0x114c5, 0x114c7, 0x114c7, 0x11580, 0x115ae, 0x115d8,
                        0x115db, 0x11600, 0x1162f, 0x11644, 0x11644, 0x11680, 0x116aa, 0x116b8, 0x116b8, 0x11700, 0x1171a, 0x11800, 0x1182b, 0x118ff, 0x118ff, 0x119a0, 0x119a7, 0x119aa, 0x119d0,
                        0x119e1, 0x119e1, 0x119e3, 0x119e3, 0x11a00, 0x11a00, 0x11a0b, 0x11a32, 0x11a3a, 0x11a3a, 0x11a50, 0x11a50, 0x11a5c, 0x11a89, 0x11a9d, 0x11a9d, 0x11ac0, 0x11af8, 0x11c00,
                        0x11c08, 0x11c0a, 0x11c2e, 0x11c40, 0x11c40, 0x11c72, 0x11c8f, 0x11d00, 0x11d06, 0x11d08, 0x11d09, 0x11d0b, 0x11d30, 0x11d46, 0x11d46, 0x11d60, 0x11d65, 0x11d67, 0x11d68,
                        0x11d6a, 0x11d89, 0x11d98, 0x11d98, 0x11ee0, 0x11ef2, 0x12000, 0x12399, 0x12480, 0x12543, 0x13000, 0x1342e, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16ad0,
                        0x16aed, 0x16b00, 0x16b2f, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f, 0x16f00, 0x16f4a, 0x16f50, 0x16f50, 0x17000, 0x187f7, 0x18800, 0x18af2, 0x1b000, 0x1b11e, 0x1b150, 0x1b152,
                        0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, 0x1bc70, 0x1bc7c, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1e100, 0x1e12c, 0x1e14e, 0x1e14e, 0x1e2c0, 0x1e2eb, 0x1e800,
                        0x1e8c4, 0x1ee00, 0x1ee03, 0x1ee05, 0x1ee1f, 0x1ee21, 0x1ee22, 0x1ee24, 0x1ee24, 0x1ee27, 0x1ee27, 0x1ee29, 0x1ee32, 0x1ee34, 0x1ee37, 0x1ee39, 0x1ee39, 0x1ee3b, 0x1ee3b,
                        0x1ee42, 0x1ee42, 0x1ee47, 0x1ee47, 0x1ee49, 0x1ee49, 0x1ee4b, 0x1ee4b, 0x1ee4d, 0x1ee4f, 0x1ee51, 0x1ee52, 0x1ee54, 0x1ee54, 0x1ee57, 0x1ee57, 0x1ee59, 0x1ee59, 0x1ee5b,
                        0x1ee5b, 0x1ee5d, 0x1ee5d, 0x1ee5f, 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64, 0x1ee64, 0x1ee67, 0x1ee6a, 0x1ee6c, 0x1ee72, 0x1ee74, 0x1ee77, 0x1ee79, 0x1ee7c, 0x1ee7e, 0x1ee7e,
                        0x1ee80, 0x1ee89, 0x1ee8b, 0x1ee9b, 0x1eea1, 0x1eea3, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x20000, 0x2a6d6, 0x2a700, 0x2b734, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0,
                        0x2ebe0, 0x2f800, 0x2fa1d));
    }

    private static void populateGC_LT() {
        SET_ENCODINGS.put("gc=Lt", CodePointSet.createNoDedup(0x01c5, 0x01c5, 0x01c8, 0x01c8, 0x01cb, 0x01cb, 0x01f2, 0x01f2, 0x1f88, 0x1f8f, 0x1f98, 0x1f9f, 0x1fa8, 0x1faf, 0x1fbc, 0x1fbc, 0x1fcc,
                        0x1fcc, 0x1ffc, 0x1ffc));
    }

    private static void populateGC_LU() {
        SET_ENCODINGS.put("gc=Lu", CodePointSet.createNoDedup(0x0041, 0x005a, 0x00c0, 0x00d6, 0x00d8, 0x00de, 0x0100, 0x0100, 0x0102, 0x0102, 0x0104, 0x0104, 0x0106, 0x0106, 0x0108, 0x0108, 0x010a,
                        0x010a, 0x010c, 0x010c, 0x010e, 0x010e, 0x0110, 0x0110, 0x0112, 0x0112, 0x0114, 0x0114, 0x0116, 0x0116, 0x0118, 0x0118, 0x011a, 0x011a, 0x011c, 0x011c, 0x011e, 0x011e, 0x0120,
                        0x0120, 0x0122, 0x0122, 0x0124, 0x0124, 0x0126, 0x0126, 0x0128, 0x0128, 0x012a, 0x012a, 0x012c, 0x012c, 0x012e, 0x012e, 0x0130, 0x0130, 0x0132, 0x0132, 0x0134, 0x0134, 0x0136,
                        0x0136, 0x0139, 0x0139, 0x013b, 0x013b, 0x013d, 0x013d, 0x013f, 0x013f, 0x0141, 0x0141, 0x0143, 0x0143, 0x0145, 0x0145, 0x0147, 0x0147, 0x014a, 0x014a, 0x014c, 0x014c, 0x014e,
                        0x014e, 0x0150, 0x0150, 0x0152, 0x0152, 0x0154, 0x0154, 0x0156, 0x0156, 0x0158, 0x0158, 0x015a, 0x015a, 0x015c, 0x015c, 0x015e, 0x015e, 0x0160, 0x0160, 0x0162, 0x0162, 0x0164,
                        0x0164, 0x0166, 0x0166, 0x0168, 0x0168, 0x016a, 0x016a, 0x016c, 0x016c, 0x016e, 0x016e, 0x0170, 0x0170, 0x0172, 0x0172, 0x0174, 0x0174, 0x0176, 0x0176, 0x0178, 0x0179, 0x017b,
                        0x017b, 0x017d, 0x017d, 0x0181, 0x0182, 0x0184, 0x0184, 0x0186, 0x0187, 0x0189, 0x018b, 0x018e, 0x0191, 0x0193, 0x0194, 0x0196, 0x0198, 0x019c, 0x019d, 0x019f, 0x01a0, 0x01a2,
                        0x01a2, 0x01a4, 0x01a4, 0x01a6, 0x01a7, 0x01a9, 0x01a9, 0x01ac, 0x01ac, 0x01ae, 0x01af, 0x01b1, 0x01b3, 0x01b5, 0x01b5, 0x01b7, 0x01b8, 0x01bc, 0x01bc, 0x01c4, 0x01c4, 0x01c7,
                        0x01c7, 0x01ca, 0x01ca, 0x01cd, 0x01cd, 0x01cf, 0x01cf, 0x01d1, 0x01d1, 0x01d3, 0x01d3, 0x01d5, 0x01d5, 0x01d7, 0x01d7, 0x01d9, 0x01d9, 0x01db, 0x01db, 0x01de, 0x01de, 0x01e0,
                        0x01e0, 0x01e2, 0x01e2, 0x01e4, 0x01e4, 0x01e6, 0x01e6, 0x01e8, 0x01e8, 0x01ea, 0x01ea, 0x01ec, 0x01ec, 0x01ee, 0x01ee, 0x01f1, 0x01f1, 0x01f4, 0x01f4, 0x01f6, 0x01f8, 0x01fa,
                        0x01fa, 0x01fc, 0x01fc, 0x01fe, 0x01fe, 0x0200, 0x0200, 0x0202, 0x0202, 0x0204, 0x0204, 0x0206, 0x0206, 0x0208, 0x0208, 0x020a, 0x020a, 0x020c, 0x020c, 0x020e, 0x020e, 0x0210,
                        0x0210, 0x0212, 0x0212, 0x0214, 0x0214, 0x0216, 0x0216, 0x0218, 0x0218, 0x021a, 0x021a, 0x021c, 0x021c, 0x021e, 0x021e, 0x0220, 0x0220, 0x0222, 0x0222, 0x0224, 0x0224, 0x0226,
                        0x0226, 0x0228, 0x0228, 0x022a, 0x022a, 0x022c, 0x022c, 0x022e, 0x022e, 0x0230, 0x0230, 0x0232, 0x0232, 0x023a, 0x023b, 0x023d, 0x023e, 0x0241, 0x0241, 0x0243, 0x0246, 0x0248,
                        0x0248, 0x024a, 0x024a, 0x024c, 0x024c, 0x024e, 0x024e, 0x0370, 0x0370, 0x0372, 0x0372, 0x0376, 0x0376, 0x037f, 0x037f, 0x0386, 0x0386, 0x0388, 0x038a, 0x038c, 0x038c, 0x038e,
                        0x038f, 0x0391, 0x03a1, 0x03a3, 0x03ab, 0x03cf, 0x03cf, 0x03d2, 0x03d4, 0x03d8, 0x03d8, 0x03da, 0x03da, 0x03dc, 0x03dc, 0x03de, 0x03de, 0x03e0, 0x03e0, 0x03e2, 0x03e2, 0x03e4,
                        0x03e4, 0x03e6, 0x03e6, 0x03e8, 0x03e8, 0x03ea, 0x03ea, 0x03ec, 0x03ec, 0x03ee, 0x03ee, 0x03f4, 0x03f4, 0x03f7, 0x03f7, 0x03f9, 0x03fa, 0x03fd, 0x042f, 0x0460, 0x0460, 0x0462,
                        0x0462, 0x0464, 0x0464, 0x0466, 0x0466, 0x0468, 0x0468, 0x046a, 0x046a, 0x046c, 0x046c, 0x046e, 0x046e, 0x0470, 0x0470, 0x0472, 0x0472, 0x0474, 0x0474, 0x0476, 0x0476, 0x0478,
                        0x0478, 0x047a, 0x047a, 0x047c, 0x047c, 0x047e, 0x047e, 0x0480, 0x0480, 0x048a, 0x048a, 0x048c, 0x048c, 0x048e, 0x048e, 0x0490, 0x0490, 0x0492, 0x0492, 0x0494, 0x0494, 0x0496,
                        0x0496, 0x0498, 0x0498, 0x049a, 0x049a, 0x049c, 0x049c, 0x049e, 0x049e, 0x04a0, 0x04a0, 0x04a2, 0x04a2, 0x04a4, 0x04a4, 0x04a6, 0x04a6, 0x04a8, 0x04a8, 0x04aa, 0x04aa, 0x04ac,
                        0x04ac, 0x04ae, 0x04ae, 0x04b0, 0x04b0, 0x04b2, 0x04b2, 0x04b4, 0x04b4, 0x04b6, 0x04b6, 0x04b8, 0x04b8, 0x04ba, 0x04ba, 0x04bc, 0x04bc, 0x04be, 0x04be, 0x04c0, 0x04c1, 0x04c3,
                        0x04c3, 0x04c5, 0x04c5, 0x04c7, 0x04c7, 0x04c9, 0x04c9, 0x04cb, 0x04cb, 0x04cd, 0x04cd, 0x04d0, 0x04d0, 0x04d2, 0x04d2, 0x04d4, 0x04d4, 0x04d6, 0x04d6, 0x04d8, 0x04d8, 0x04da,
                        0x04da, 0x04dc, 0x04dc, 0x04de, 0x04de, 0x04e0, 0x04e0, 0x04e2, 0x04e2, 0x04e4, 0x04e4, 0x04e6, 0x04e6, 0x04e8, 0x04e8, 0x04ea, 0x04ea, 0x04ec, 0x04ec, 0x04ee, 0x04ee, 0x04f0,
                        0x04f0, 0x04f2, 0x04f2, 0x04f4, 0x04f4, 0x04f6, 0x04f6, 0x04f8, 0x04f8, 0x04fa, 0x04fa, 0x04fc, 0x04fc, 0x04fe, 0x04fe, 0x0500, 0x0500, 0x0502, 0x0502, 0x0504, 0x0504, 0x0506,
                        0x0506, 0x0508, 0x0508, 0x050a, 0x050a, 0x050c, 0x050c, 0x050e, 0x050e, 0x0510, 0x0510, 0x0512, 0x0512, 0x0514, 0x0514, 0x0516, 0x0516, 0x0518, 0x0518, 0x051a, 0x051a, 0x051c,
                        0x051c, 0x051e, 0x051e, 0x0520, 0x0520, 0x0522, 0x0522, 0x0524, 0x0524, 0x0526, 0x0526, 0x0528, 0x0528, 0x052a, 0x052a, 0x052c, 0x052c, 0x052e, 0x052e, 0x0531, 0x0556, 0x10a0,
                        0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x13a0, 0x13f5, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1e00, 0x1e00, 0x1e02, 0x1e02, 0x1e04, 0x1e04, 0x1e06, 0x1e06, 0x1e08, 0x1e08, 0x1e0a,
                        0x1e0a, 0x1e0c, 0x1e0c, 0x1e0e, 0x1e0e, 0x1e10, 0x1e10, 0x1e12, 0x1e12, 0x1e14, 0x1e14, 0x1e16, 0x1e16, 0x1e18, 0x1e18, 0x1e1a, 0x1e1a, 0x1e1c, 0x1e1c, 0x1e1e, 0x1e1e, 0x1e20,
                        0x1e20, 0x1e22, 0x1e22, 0x1e24, 0x1e24, 0x1e26, 0x1e26, 0x1e28, 0x1e28, 0x1e2a, 0x1e2a, 0x1e2c, 0x1e2c, 0x1e2e, 0x1e2e, 0x1e30, 0x1e30, 0x1e32, 0x1e32, 0x1e34, 0x1e34, 0x1e36,
                        0x1e36, 0x1e38, 0x1e38, 0x1e3a, 0x1e3a, 0x1e3c, 0x1e3c, 0x1e3e, 0x1e3e, 0x1e40, 0x1e40, 0x1e42, 0x1e42, 0x1e44, 0x1e44, 0x1e46, 0x1e46, 0x1e48, 0x1e48, 0x1e4a, 0x1e4a, 0x1e4c,
                        0x1e4c, 0x1e4e, 0x1e4e, 0x1e50, 0x1e50, 0x1e52, 0x1e52, 0x1e54, 0x1e54, 0x1e56, 0x1e56, 0x1e58, 0x1e58, 0x1e5a, 0x1e5a, 0x1e5c, 0x1e5c, 0x1e5e, 0x1e5e, 0x1e60, 0x1e60, 0x1e62,
                        0x1e62, 0x1e64, 0x1e64, 0x1e66, 0x1e66, 0x1e68, 0x1e68, 0x1e6a, 0x1e6a, 0x1e6c, 0x1e6c, 0x1e6e, 0x1e6e, 0x1e70, 0x1e70, 0x1e72, 0x1e72, 0x1e74, 0x1e74, 0x1e76, 0x1e76, 0x1e78,
                        0x1e78, 0x1e7a, 0x1e7a, 0x1e7c, 0x1e7c, 0x1e7e, 0x1e7e, 0x1e80, 0x1e80, 0x1e82, 0x1e82, 0x1e84, 0x1e84, 0x1e86, 0x1e86, 0x1e88, 0x1e88, 0x1e8a, 0x1e8a, 0x1e8c, 0x1e8c, 0x1e8e,
                        0x1e8e, 0x1e90, 0x1e90, 0x1e92, 0x1e92, 0x1e94, 0x1e94, 0x1e9e, 0x1e9e, 0x1ea0, 0x1ea0, 0x1ea2, 0x1ea2, 0x1ea4, 0x1ea4, 0x1ea6, 0x1ea6, 0x1ea8, 0x1ea8, 0x1eaa, 0x1eaa, 0x1eac,
                        0x1eac, 0x1eae, 0x1eae, 0x1eb0, 0x1eb0, 0x1eb2, 0x1eb2, 0x1eb4, 0x1eb4, 0x1eb6, 0x1eb6, 0x1eb8, 0x1eb8, 0x1eba, 0x1eba, 0x1ebc, 0x1ebc, 0x1ebe, 0x1ebe, 0x1ec0, 0x1ec0, 0x1ec2,
                        0x1ec2, 0x1ec4, 0x1ec4, 0x1ec6, 0x1ec6, 0x1ec8, 0x1ec8, 0x1eca, 0x1eca, 0x1ecc, 0x1ecc, 0x1ece, 0x1ece, 0x1ed0, 0x1ed0, 0x1ed2, 0x1ed2, 0x1ed4, 0x1ed4, 0x1ed6, 0x1ed6, 0x1ed8,
                        0x1ed8, 0x1eda, 0x1eda, 0x1edc, 0x1edc, 0x1ede, 0x1ede, 0x1ee0, 0x1ee0, 0x1ee2, 0x1ee2, 0x1ee4, 0x1ee4, 0x1ee6, 0x1ee6, 0x1ee8, 0x1ee8, 0x1eea, 0x1eea, 0x1eec, 0x1eec, 0x1eee,
                        0x1eee, 0x1ef0, 0x1ef0, 0x1ef2, 0x1ef2, 0x1ef4, 0x1ef4, 0x1ef6, 0x1ef6, 0x1ef8, 0x1ef8, 0x1efa, 0x1efa, 0x1efc, 0x1efc, 0x1efe, 0x1efe, 0x1f08, 0x1f0f, 0x1f18, 0x1f1d, 0x1f28,
                        0x1f2f, 0x1f38, 0x1f3f, 0x1f48, 0x1f4d, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f5f, 0x1f68, 0x1f6f, 0x1fb8, 0x1fbb, 0x1fc8, 0x1fcb, 0x1fd8, 0x1fdb, 0x1fe8,
                        0x1fec, 0x1ff8, 0x1ffb, 0x2102, 0x2102, 0x2107, 0x2107, 0x210b, 0x210d, 0x2110, 0x2112, 0x2115, 0x2115, 0x2119, 0x211d, 0x2124, 0x2124, 0x2126, 0x2126, 0x2128, 0x2128, 0x212a,
                        0x212d, 0x2130, 0x2133, 0x213e, 0x213f, 0x2145, 0x2145, 0x2183, 0x2183, 0x2c00, 0x2c2e, 0x2c60, 0x2c60, 0x2c62, 0x2c64, 0x2c67, 0x2c67, 0x2c69, 0x2c69, 0x2c6b, 0x2c6b, 0x2c6d,
                        0x2c70, 0x2c72, 0x2c72, 0x2c75, 0x2c75, 0x2c7e, 0x2c80, 0x2c82, 0x2c82, 0x2c84, 0x2c84, 0x2c86, 0x2c86, 0x2c88, 0x2c88, 0x2c8a, 0x2c8a, 0x2c8c, 0x2c8c, 0x2c8e, 0x2c8e, 0x2c90,
                        0x2c90, 0x2c92, 0x2c92, 0x2c94, 0x2c94, 0x2c96, 0x2c96, 0x2c98, 0x2c98, 0x2c9a, 0x2c9a, 0x2c9c, 0x2c9c, 0x2c9e, 0x2c9e, 0x2ca0, 0x2ca0, 0x2ca2, 0x2ca2, 0x2ca4, 0x2ca4, 0x2ca6,
                        0x2ca6, 0x2ca8, 0x2ca8, 0x2caa, 0x2caa, 0x2cac, 0x2cac, 0x2cae, 0x2cae, 0x2cb0, 0x2cb0, 0x2cb2, 0x2cb2, 0x2cb4, 0x2cb4, 0x2cb6, 0x2cb6, 0x2cb8, 0x2cb8, 0x2cba, 0x2cba, 0x2cbc,
                        0x2cbc, 0x2cbe, 0x2cbe, 0x2cc0, 0x2cc0, 0x2cc2, 0x2cc2, 0x2cc4, 0x2cc4, 0x2cc6, 0x2cc6, 0x2cc8, 0x2cc8, 0x2cca, 0x2cca, 0x2ccc, 0x2ccc, 0x2cce, 0x2cce, 0x2cd0, 0x2cd0, 0x2cd2,
                        0x2cd2, 0x2cd4, 0x2cd4, 0x2cd6, 0x2cd6, 0x2cd8, 0x2cd8, 0x2cda, 0x2cda, 0x2cdc, 0x2cdc, 0x2cde, 0x2cde, 0x2ce0, 0x2ce0, 0x2ce2, 0x2ce2, 0x2ceb, 0x2ceb, 0x2ced, 0x2ced, 0x2cf2,
                        0x2cf2, 0xa640, 0xa640, 0xa642, 0xa642, 0xa644, 0xa644, 0xa646, 0xa646, 0xa648, 0xa648, 0xa64a, 0xa64a, 0xa64c, 0xa64c, 0xa64e, 0xa64e, 0xa650, 0xa650, 0xa652, 0xa652, 0xa654,
                        0xa654, 0xa656, 0xa656, 0xa658, 0xa658, 0xa65a, 0xa65a, 0xa65c, 0xa65c, 0xa65e, 0xa65e, 0xa660, 0xa660, 0xa662, 0xa662, 0xa664, 0xa664, 0xa666, 0xa666, 0xa668, 0xa668, 0xa66a,
                        0xa66a, 0xa66c, 0xa66c, 0xa680, 0xa680, 0xa682, 0xa682, 0xa684, 0xa684, 0xa686, 0xa686, 0xa688, 0xa688, 0xa68a, 0xa68a, 0xa68c, 0xa68c, 0xa68e, 0xa68e, 0xa690, 0xa690, 0xa692,
                        0xa692, 0xa694, 0xa694, 0xa696, 0xa696, 0xa698, 0xa698, 0xa69a, 0xa69a, 0xa722, 0xa722, 0xa724, 0xa724, 0xa726, 0xa726, 0xa728, 0xa728, 0xa72a, 0xa72a, 0xa72c, 0xa72c, 0xa72e,
                        0xa72e, 0xa732, 0xa732, 0xa734, 0xa734, 0xa736, 0xa736, 0xa738, 0xa738, 0xa73a, 0xa73a, 0xa73c, 0xa73c, 0xa73e, 0xa73e, 0xa740, 0xa740, 0xa742, 0xa742, 0xa744, 0xa744, 0xa746,
                        0xa746, 0xa748, 0xa748, 0xa74a, 0xa74a, 0xa74c, 0xa74c, 0xa74e, 0xa74e, 0xa750, 0xa750, 0xa752, 0xa752, 0xa754, 0xa754, 0xa756, 0xa756, 0xa758, 0xa758, 0xa75a, 0xa75a, 0xa75c,
                        0xa75c, 0xa75e, 0xa75e, 0xa760, 0xa760, 0xa762, 0xa762, 0xa764, 0xa764, 0xa766, 0xa766, 0xa768, 0xa768, 0xa76a, 0xa76a, 0xa76c, 0xa76c, 0xa76e, 0xa76e, 0xa779, 0xa779, 0xa77b,
                        0xa77b, 0xa77d, 0xa77e, 0xa780, 0xa780, 0xa782, 0xa782, 0xa784, 0xa784, 0xa786, 0xa786, 0xa78b, 0xa78b, 0xa78d, 0xa78d, 0xa790, 0xa790, 0xa792, 0xa792, 0xa796, 0xa796, 0xa798,
                        0xa798, 0xa79a, 0xa79a, 0xa79c, 0xa79c, 0xa79e, 0xa79e, 0xa7a0, 0xa7a0, 0xa7a2, 0xa7a2, 0xa7a4, 0xa7a4, 0xa7a6, 0xa7a6, 0xa7a8, 0xa7a8, 0xa7aa, 0xa7ae, 0xa7b0, 0xa7b4, 0xa7b6,
                        0xa7b6, 0xa7b8, 0xa7b8, 0xa7ba, 0xa7ba, 0xa7bc, 0xa7bc, 0xa7be, 0xa7be, 0xa7c2, 0xa7c2, 0xa7c4, 0xa7c6, 0xff21, 0xff3a, 0x10400, 0x10427, 0x104b0, 0x104d3, 0x10c80, 0x10cb2,
                        0x118a0, 0x118bf, 0x16e40, 0x16e5f, 0x1d400, 0x1d419, 0x1d434, 0x1d44d, 0x1d468, 0x1d481, 0x1d49c, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4a9,
                        0x1d4ac, 0x1d4ae, 0x1d4b5, 0x1d4d0, 0x1d4e9, 0x1d504, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c, 0x1d538, 0x1d539, 0x1d53b, 0x1d53e, 0x1d540, 0x1d544,
                        0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d56c, 0x1d585, 0x1d5a0, 0x1d5b9, 0x1d5d4, 0x1d5ed, 0x1d608, 0x1d621, 0x1d63c, 0x1d655, 0x1d670, 0x1d689, 0x1d6a8, 0x1d6c0, 0x1d6e2,
                        0x1d6fa, 0x1d71c, 0x1d734, 0x1d756, 0x1d76e, 0x1d790, 0x1d7a8, 0x1d7ca, 0x1d7ca, 0x1e900, 0x1e921));
    }

    private static void populateGC_MC() {
        SET_ENCODINGS.put("gc=Mc", CodePointSet.createNoDedup(0x0903, 0x0903, 0x093b, 0x093b, 0x093e, 0x0940, 0x0949, 0x094c, 0x094e, 0x094f, 0x0982, 0x0983, 0x09be, 0x09c0, 0x09c7, 0x09c8, 0x09cb,
                        0x09cc, 0x09d7, 0x09d7, 0x0a03, 0x0a03, 0x0a3e, 0x0a40, 0x0a83, 0x0a83, 0x0abe, 0x0ac0, 0x0ac9, 0x0ac9, 0x0acb, 0x0acc, 0x0b02, 0x0b03, 0x0b3e, 0x0b3e, 0x0b40, 0x0b40, 0x0b47,
                        0x0b48, 0x0b4b, 0x0b4c, 0x0b57, 0x0b57, 0x0bbe, 0x0bbf, 0x0bc1, 0x0bc2, 0x0bc6, 0x0bc8, 0x0bca, 0x0bcc, 0x0bd7, 0x0bd7, 0x0c01, 0x0c03, 0x0c41, 0x0c44, 0x0c82, 0x0c83, 0x0cbe,
                        0x0cbe, 0x0cc0, 0x0cc4, 0x0cc7, 0x0cc8, 0x0cca, 0x0ccb, 0x0cd5, 0x0cd6, 0x0d02, 0x0d03, 0x0d3e, 0x0d40, 0x0d46, 0x0d48, 0x0d4a, 0x0d4c, 0x0d57, 0x0d57, 0x0d82, 0x0d83, 0x0dcf,
                        0x0dd1, 0x0dd8, 0x0ddf, 0x0df2, 0x0df3, 0x0f3e, 0x0f3f, 0x0f7f, 0x0f7f, 0x102b, 0x102c, 0x1031, 0x1031, 0x1038, 0x1038, 0x103b, 0x103c, 0x1056, 0x1057, 0x1062, 0x1064, 0x1067,
                        0x106d, 0x1083, 0x1084, 0x1087, 0x108c, 0x108f, 0x108f, 0x109a, 0x109c, 0x17b6, 0x17b6, 0x17be, 0x17c5, 0x17c7, 0x17c8, 0x1923, 0x1926, 0x1929, 0x192b, 0x1930, 0x1931, 0x1933,
                        0x1938, 0x1a19, 0x1a1a, 0x1a55, 0x1a55, 0x1a57, 0x1a57, 0x1a61, 0x1a61, 0x1a63, 0x1a64, 0x1a6d, 0x1a72, 0x1b04, 0x1b04, 0x1b35, 0x1b35, 0x1b3b, 0x1b3b, 0x1b3d, 0x1b41, 0x1b43,
                        0x1b44, 0x1b82, 0x1b82, 0x1ba1, 0x1ba1, 0x1ba6, 0x1ba7, 0x1baa, 0x1baa, 0x1be7, 0x1be7, 0x1bea, 0x1bec, 0x1bee, 0x1bee, 0x1bf2, 0x1bf3, 0x1c24, 0x1c2b, 0x1c34, 0x1c35, 0x1ce1,
                        0x1ce1, 0x1cf7, 0x1cf7, 0x302e, 0x302f, 0xa823, 0xa824, 0xa827, 0xa827, 0xa880, 0xa881, 0xa8b4, 0xa8c3, 0xa952, 0xa953, 0xa983, 0xa983, 0xa9b4, 0xa9b5, 0xa9ba, 0xa9bb, 0xa9be,
                        0xa9c0, 0xaa2f, 0xaa30, 0xaa33, 0xaa34, 0xaa4d, 0xaa4d, 0xaa7b, 0xaa7b, 0xaa7d, 0xaa7d, 0xaaeb, 0xaaeb, 0xaaee, 0xaaef, 0xaaf5, 0xaaf5, 0xabe3, 0xabe4, 0xabe6, 0xabe7, 0xabe9,
                        0xabea, 0xabec, 0xabec, 0x11000, 0x11000, 0x11002, 0x11002, 0x11082, 0x11082, 0x110b0, 0x110b2, 0x110b7, 0x110b8, 0x1112c, 0x1112c, 0x11145, 0x11146, 0x11182, 0x11182, 0x111b3,
                        0x111b5, 0x111bf, 0x111c0, 0x1122c, 0x1122e, 0x11232, 0x11233, 0x11235, 0x11235, 0x112e0, 0x112e2, 0x11302, 0x11303, 0x1133e, 0x1133f, 0x11341, 0x11344, 0x11347, 0x11348,
                        0x1134b, 0x1134d, 0x11357, 0x11357, 0x11362, 0x11363, 0x11435, 0x11437, 0x11440, 0x11441, 0x11445, 0x11445, 0x114b0, 0x114b2, 0x114b9, 0x114b9, 0x114bb, 0x114be, 0x114c1,
                        0x114c1, 0x115af, 0x115b1, 0x115b8, 0x115bb, 0x115be, 0x115be, 0x11630, 0x11632, 0x1163b, 0x1163c, 0x1163e, 0x1163e, 0x116ac, 0x116ac, 0x116ae, 0x116af, 0x116b6, 0x116b6,
                        0x11720, 0x11721, 0x11726, 0x11726, 0x1182c, 0x1182e, 0x11838, 0x11838, 0x119d1, 0x119d3, 0x119dc, 0x119df, 0x119e4, 0x119e4, 0x11a39, 0x11a39, 0x11a57, 0x11a58, 0x11a97,
                        0x11a97, 0x11c2f, 0x11c2f, 0x11c3e, 0x11c3e, 0x11ca9, 0x11ca9, 0x11cb1, 0x11cb1, 0x11cb4, 0x11cb4, 0x11d8a, 0x11d8e, 0x11d93, 0x11d94, 0x11d96, 0x11d96, 0x11ef5, 0x11ef6,
                        0x16f51, 0x16f87, 0x1d165, 0x1d166, 0x1d16d, 0x1d172));
    }

    private static void populateGC_ME() {
        SET_ENCODINGS.put("gc=Me", CodePointSet.createNoDedup(0x0488, 0x0489, 0x1abe, 0x1abe, 0x20dd, 0x20e0, 0x20e2, 0x20e4, 0xa670, 0xa672));
    }

    private static void populateGC_MN() {
        SET_ENCODINGS.put("gc=Mn", CodePointSet.createNoDedup(0x0300, 0x036f, 0x0483, 0x0487, 0x0591, 0x05bd, 0x05bf, 0x05bf, 0x05c1, 0x05c2, 0x05c4, 0x05c5, 0x05c7, 0x05c7, 0x0610, 0x061a, 0x064b,
                        0x065f, 0x0670, 0x0670, 0x06d6, 0x06dc, 0x06df, 0x06e4, 0x06e7, 0x06e8, 0x06ea, 0x06ed, 0x0711, 0x0711, 0x0730, 0x074a, 0x07a6, 0x07b0, 0x07eb, 0x07f3, 0x07fd, 0x07fd, 0x0816,
                        0x0819, 0x081b, 0x0823, 0x0825, 0x0827, 0x0829, 0x082d, 0x0859, 0x085b, 0x08d3, 0x08e1, 0x08e3, 0x0902, 0x093a, 0x093a, 0x093c, 0x093c, 0x0941, 0x0948, 0x094d, 0x094d, 0x0951,
                        0x0957, 0x0962, 0x0963, 0x0981, 0x0981, 0x09bc, 0x09bc, 0x09c1, 0x09c4, 0x09cd, 0x09cd, 0x09e2, 0x09e3, 0x09fe, 0x09fe, 0x0a01, 0x0a02, 0x0a3c, 0x0a3c, 0x0a41, 0x0a42, 0x0a47,
                        0x0a48, 0x0a4b, 0x0a4d, 0x0a51, 0x0a51, 0x0a70, 0x0a71, 0x0a75, 0x0a75, 0x0a81, 0x0a82, 0x0abc, 0x0abc, 0x0ac1, 0x0ac5, 0x0ac7, 0x0ac8, 0x0acd, 0x0acd, 0x0ae2, 0x0ae3, 0x0afa,
                        0x0aff, 0x0b01, 0x0b01, 0x0b3c, 0x0b3c, 0x0b3f, 0x0b3f, 0x0b41, 0x0b44, 0x0b4d, 0x0b4d, 0x0b56, 0x0b56, 0x0b62, 0x0b63, 0x0b82, 0x0b82, 0x0bc0, 0x0bc0, 0x0bcd, 0x0bcd, 0x0c00,
                        0x0c00, 0x0c04, 0x0c04, 0x0c3e, 0x0c40, 0x0c46, 0x0c48, 0x0c4a, 0x0c4d, 0x0c55, 0x0c56, 0x0c62, 0x0c63, 0x0c81, 0x0c81, 0x0cbc, 0x0cbc, 0x0cbf, 0x0cbf, 0x0cc6, 0x0cc6, 0x0ccc,
                        0x0ccd, 0x0ce2, 0x0ce3, 0x0d00, 0x0d01, 0x0d3b, 0x0d3c, 0x0d41, 0x0d44, 0x0d4d, 0x0d4d, 0x0d62, 0x0d63, 0x0dca, 0x0dca, 0x0dd2, 0x0dd4, 0x0dd6, 0x0dd6, 0x0e31, 0x0e31, 0x0e34,
                        0x0e3a, 0x0e47, 0x0e4e, 0x0eb1, 0x0eb1, 0x0eb4, 0x0ebc, 0x0ec8, 0x0ecd, 0x0f18, 0x0f19, 0x0f35, 0x0f35, 0x0f37, 0x0f37, 0x0f39, 0x0f39, 0x0f71, 0x0f7e, 0x0f80, 0x0f84, 0x0f86,
                        0x0f87, 0x0f8d, 0x0f97, 0x0f99, 0x0fbc, 0x0fc6, 0x0fc6, 0x102d, 0x1030, 0x1032, 0x1037, 0x1039, 0x103a, 0x103d, 0x103e, 0x1058, 0x1059, 0x105e, 0x1060, 0x1071, 0x1074, 0x1082,
                        0x1082, 0x1085, 0x1086, 0x108d, 0x108d, 0x109d, 0x109d, 0x135d, 0x135f, 0x1712, 0x1714, 0x1732, 0x1734, 0x1752, 0x1753, 0x1772, 0x1773, 0x17b4, 0x17b5, 0x17b7, 0x17bd, 0x17c6,
                        0x17c6, 0x17c9, 0x17d3, 0x17dd, 0x17dd, 0x180b, 0x180d, 0x1885, 0x1886, 0x18a9, 0x18a9, 0x1920, 0x1922, 0x1927, 0x1928, 0x1932, 0x1932, 0x1939, 0x193b, 0x1a17, 0x1a18, 0x1a1b,
                        0x1a1b, 0x1a56, 0x1a56, 0x1a58, 0x1a5e, 0x1a60, 0x1a60, 0x1a62, 0x1a62, 0x1a65, 0x1a6c, 0x1a73, 0x1a7c, 0x1a7f, 0x1a7f, 0x1ab0, 0x1abd, 0x1b00, 0x1b03, 0x1b34, 0x1b34, 0x1b36,
                        0x1b3a, 0x1b3c, 0x1b3c, 0x1b42, 0x1b42, 0x1b6b, 0x1b73, 0x1b80, 0x1b81, 0x1ba2, 0x1ba5, 0x1ba8, 0x1ba9, 0x1bab, 0x1bad, 0x1be6, 0x1be6, 0x1be8, 0x1be9, 0x1bed, 0x1bed, 0x1bef,
                        0x1bf1, 0x1c2c, 0x1c33, 0x1c36, 0x1c37, 0x1cd0, 0x1cd2, 0x1cd4, 0x1ce0, 0x1ce2, 0x1ce8, 0x1ced, 0x1ced, 0x1cf4, 0x1cf4, 0x1cf8, 0x1cf9, 0x1dc0, 0x1df9, 0x1dfb, 0x1dff, 0x20d0,
                        0x20dc, 0x20e1, 0x20e1, 0x20e5, 0x20f0, 0x2cef, 0x2cf1, 0x2d7f, 0x2d7f, 0x2de0, 0x2dff, 0x302a, 0x302d, 0x3099, 0x309a, 0xa66f, 0xa66f, 0xa674, 0xa67d, 0xa69e, 0xa69f, 0xa6f0,
                        0xa6f1, 0xa802, 0xa802, 0xa806, 0xa806, 0xa80b, 0xa80b, 0xa825, 0xa826, 0xa8c4, 0xa8c5, 0xa8e0, 0xa8f1, 0xa8ff, 0xa8ff, 0xa926, 0xa92d, 0xa947, 0xa951, 0xa980, 0xa982, 0xa9b3,
                        0xa9b3, 0xa9b6, 0xa9b9, 0xa9bc, 0xa9bd, 0xa9e5, 0xa9e5, 0xaa29, 0xaa2e, 0xaa31, 0xaa32, 0xaa35, 0xaa36, 0xaa43, 0xaa43, 0xaa4c, 0xaa4c, 0xaa7c, 0xaa7c, 0xaab0, 0xaab0, 0xaab2,
                        0xaab4, 0xaab7, 0xaab8, 0xaabe, 0xaabf, 0xaac1, 0xaac1, 0xaaec, 0xaaed, 0xaaf6, 0xaaf6, 0xabe5, 0xabe5, 0xabe8, 0xabe8, 0xabed, 0xabed, 0xfb1e, 0xfb1e, 0xfe00, 0xfe0f, 0xfe20,
                        0xfe2f, 0x101fd, 0x101fd, 0x102e0, 0x102e0, 0x10376, 0x1037a, 0x10a01, 0x10a03, 0x10a05, 0x10a06, 0x10a0c, 0x10a0f, 0x10a38, 0x10a3a, 0x10a3f, 0x10a3f, 0x10ae5, 0x10ae6,
                        0x10d24, 0x10d27, 0x10f46, 0x10f50, 0x11001, 0x11001, 0x11038, 0x11046, 0x1107f, 0x11081, 0x110b3, 0x110b6, 0x110b9, 0x110ba, 0x11100, 0x11102, 0x11127, 0x1112b, 0x1112d,
                        0x11134, 0x11173, 0x11173, 0x11180, 0x11181, 0x111b6, 0x111be, 0x111c9, 0x111cc, 0x1122f, 0x11231, 0x11234, 0x11234, 0x11236, 0x11237, 0x1123e, 0x1123e, 0x112df, 0x112df,
                        0x112e3, 0x112ea, 0x11300, 0x11301, 0x1133b, 0x1133c, 0x11340, 0x11340, 0x11366, 0x1136c, 0x11370, 0x11374, 0x11438, 0x1143f, 0x11442, 0x11444, 0x11446, 0x11446, 0x1145e,
                        0x1145e, 0x114b3, 0x114b8, 0x114ba, 0x114ba, 0x114bf, 0x114c0, 0x114c2, 0x114c3, 0x115b2, 0x115b5, 0x115bc, 0x115bd, 0x115bf, 0x115c0, 0x115dc, 0x115dd, 0x11633, 0x1163a,
                        0x1163d, 0x1163d, 0x1163f, 0x11640, 0x116ab, 0x116ab, 0x116ad, 0x116ad, 0x116b0, 0x116b5, 0x116b7, 0x116b7, 0x1171d, 0x1171f, 0x11722, 0x11725, 0x11727, 0x1172b, 0x1182f,
                        0x11837, 0x11839, 0x1183a, 0x119d4, 0x119d7, 0x119da, 0x119db, 0x119e0, 0x119e0, 0x11a01, 0x11a0a, 0x11a33, 0x11a38, 0x11a3b, 0x11a3e, 0x11a47, 0x11a47, 0x11a51, 0x11a56,
                        0x11a59, 0x11a5b, 0x11a8a, 0x11a96, 0x11a98, 0x11a99, 0x11c30, 0x11c36, 0x11c38, 0x11c3d, 0x11c3f, 0x11c3f, 0x11c92, 0x11ca7, 0x11caa, 0x11cb0, 0x11cb2, 0x11cb3, 0x11cb5,
                        0x11cb6, 0x11d31, 0x11d36, 0x11d3a, 0x11d3a, 0x11d3c, 0x11d3d, 0x11d3f, 0x11d45, 0x11d47, 0x11d47, 0x11d90, 0x11d91, 0x11d95, 0x11d95, 0x11d97, 0x11d97, 0x11ef3, 0x11ef4,
                        0x16af0, 0x16af4, 0x16b30, 0x16b36, 0x16f4f, 0x16f4f, 0x16f8f, 0x16f92, 0x1bc9d, 0x1bc9e, 0x1d167, 0x1d169, 0x1d17b, 0x1d182, 0x1d185, 0x1d18b, 0x1d1aa, 0x1d1ad, 0x1d242,
                        0x1d244, 0x1da00, 0x1da36, 0x1da3b, 0x1da6c, 0x1da75, 0x1da75, 0x1da84, 0x1da84, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021,
                        0x1e023, 0x1e024, 0x1e026, 0x1e02a, 0x1e130, 0x1e136, 0x1e2ec, 0x1e2ef, 0x1e8d0, 0x1e8d6, 0x1e944, 0x1e94a, 0xe0100, 0xe01ef));
    }

    private static void populateGC_ND() {
        SET_ENCODINGS.put("gc=Nd", CodePointSet.createNoDedup(0x0030, 0x0039, 0x0660, 0x0669, 0x06f0, 0x06f9, 0x07c0, 0x07c9, 0x0966, 0x096f, 0x09e6, 0x09ef, 0x0a66, 0x0a6f, 0x0ae6, 0x0aef, 0x0b66,
                        0x0b6f, 0x0be6, 0x0bef, 0x0c66, 0x0c6f, 0x0ce6, 0x0cef, 0x0d66, 0x0d6f, 0x0de6, 0x0def, 0x0e50, 0x0e59, 0x0ed0, 0x0ed9, 0x0f20, 0x0f29, 0x1040, 0x1049, 0x1090, 0x1099, 0x17e0,
                        0x17e9, 0x1810, 0x1819, 0x1946, 0x194f, 0x19d0, 0x19d9, 0x1a80, 0x1a89, 0x1a90, 0x1a99, 0x1b50, 0x1b59, 0x1bb0, 0x1bb9, 0x1c40, 0x1c49, 0x1c50, 0x1c59, 0xa620, 0xa629, 0xa8d0,
                        0xa8d9, 0xa900, 0xa909, 0xa9d0, 0xa9d9, 0xa9f0, 0xa9f9, 0xaa50, 0xaa59, 0xabf0, 0xabf9, 0xff10, 0xff19, 0x104a0, 0x104a9, 0x10d30, 0x10d39, 0x11066, 0x1106f, 0x110f0, 0x110f9,
                        0x11136, 0x1113f, 0x111d0, 0x111d9, 0x112f0, 0x112f9, 0x11450, 0x11459, 0x114d0, 0x114d9, 0x11650, 0x11659, 0x116c0, 0x116c9, 0x11730, 0x11739, 0x118e0, 0x118e9, 0x11c50,
                        0x11c59, 0x11d50, 0x11d59, 0x11da0, 0x11da9, 0x16a60, 0x16a69, 0x16b50, 0x16b59, 0x1d7ce, 0x1d7ff, 0x1e140, 0x1e149, 0x1e2f0, 0x1e2f9, 0x1e950, 0x1e959));
    }

    private static void populateGC_NL() {
        SET_ENCODINGS.put("gc=Nl", CodePointSet.createNoDedup(0x16ee, 0x16f0, 0x2160, 0x2182, 0x2185, 0x2188, 0x3007, 0x3007, 0x3021, 0x3029, 0x3038, 0x303a, 0xa6e6, 0xa6ef, 0x10140, 0x10174, 0x10341,
                        0x10341, 0x1034a, 0x1034a, 0x103d1, 0x103d5, 0x12400, 0x1246e));
    }

    private static void populateGC_NO() {
        SET_ENCODINGS.put("gc=No",
                        CodePointSet.createNoDedup(0x00b2, 0x00b3, 0x00b9, 0x00b9, 0x00bc, 0x00be, 0x09f4, 0x09f9, 0x0b72, 0x0b77, 0x0bf0, 0x0bf2, 0x0c78, 0x0c7e, 0x0d58, 0x0d5e, 0x0d70, 0x0d78,
                                        0x0f2a, 0x0f33, 0x1369, 0x137c, 0x17f0, 0x17f9, 0x19da, 0x19da, 0x2070, 0x2070, 0x2074, 0x2079, 0x2080, 0x2089, 0x2150, 0x215f, 0x2189, 0x2189, 0x2460, 0x249b,
                                        0x24ea, 0x24ff, 0x2776, 0x2793, 0x2cfd, 0x2cfd, 0x3192, 0x3195, 0x3220, 0x3229, 0x3248, 0x324f, 0x3251, 0x325f, 0x3280, 0x3289, 0x32b1, 0x32bf, 0xa830, 0xa835,
                                        0x10107, 0x10133, 0x10175, 0x10178, 0x1018a, 0x1018b, 0x102e1, 0x102fb, 0x10320, 0x10323, 0x10858, 0x1085f, 0x10879, 0x1087f, 0x108a7, 0x108af, 0x108fb,
                                        0x108ff, 0x10916, 0x1091b, 0x109bc, 0x109bd, 0x109c0, 0x109cf, 0x109d2, 0x109ff, 0x10a40, 0x10a48, 0x10a7d, 0x10a7e, 0x10a9d, 0x10a9f, 0x10aeb, 0x10aef,
                                        0x10b58, 0x10b5f, 0x10b78, 0x10b7f, 0x10ba9, 0x10baf, 0x10cfa, 0x10cff, 0x10e60, 0x10e7e, 0x10f1d, 0x10f26, 0x10f51, 0x10f54, 0x11052, 0x11065, 0x111e1,
                                        0x111f4, 0x1173a, 0x1173b, 0x118ea, 0x118f2, 0x11c5a, 0x11c6c, 0x11fc0, 0x11fd4, 0x16b5b, 0x16b61, 0x16e80, 0x16e96, 0x1d2e0, 0x1d2f3, 0x1d360, 0x1d378,
                                        0x1e8c7, 0x1e8cf, 0x1ec71, 0x1ecab, 0x1ecad, 0x1ecaf, 0x1ecb1, 0x1ecb4, 0x1ed01, 0x1ed2d, 0x1ed2f, 0x1ed3d, 0x1f100, 0x1f10c));
    }

    private static void populateGC_PC() {
        SET_ENCODINGS.put("gc=Pc", CodePointSet.createNoDedup(0x005f, 0x005f, 0x203f, 0x2040, 0x2054, 0x2054, 0xfe33, 0xfe34, 0xfe4d, 0xfe4f, 0xff3f, 0xff3f));
    }

    private static void populateGC_PD() {
        SET_ENCODINGS.put("gc=Pd", CodePointSet.createNoDedup(0x002d, 0x002d, 0x058a, 0x058a, 0x05be, 0x05be, 0x1400, 0x1400, 0x1806, 0x1806, 0x2010, 0x2015, 0x2e17, 0x2e17, 0x2e1a, 0x2e1a, 0x2e3a,
                        0x2e3b, 0x2e40, 0x2e40, 0x301c, 0x301c, 0x3030, 0x3030, 0x30a0, 0x30a0, 0xfe31, 0xfe32, 0xfe58, 0xfe58, 0xfe63, 0xfe63, 0xff0d, 0xff0d));
    }

    private static void populateGC_PE() {
        SET_ENCODINGS.put("gc=Pe", CodePointSet.createNoDedup(0x0029, 0x0029, 0x005d, 0x005d, 0x007d, 0x007d, 0x0f3b, 0x0f3b, 0x0f3d, 0x0f3d, 0x169c, 0x169c, 0x2046, 0x2046, 0x207e, 0x207e, 0x208e,
                        0x208e, 0x2309, 0x2309, 0x230b, 0x230b, 0x232a, 0x232a, 0x2769, 0x2769, 0x276b, 0x276b, 0x276d, 0x276d, 0x276f, 0x276f, 0x2771, 0x2771, 0x2773, 0x2773, 0x2775, 0x2775, 0x27c6,
                        0x27c6, 0x27e7, 0x27e7, 0x27e9, 0x27e9, 0x27eb, 0x27eb, 0x27ed, 0x27ed, 0x27ef, 0x27ef, 0x2984, 0x2984, 0x2986, 0x2986, 0x2988, 0x2988, 0x298a, 0x298a, 0x298c, 0x298c, 0x298e,
                        0x298e, 0x2990, 0x2990, 0x2992, 0x2992, 0x2994, 0x2994, 0x2996, 0x2996, 0x2998, 0x2998, 0x29d9, 0x29d9, 0x29db, 0x29db, 0x29fd, 0x29fd, 0x2e23, 0x2e23, 0x2e25, 0x2e25, 0x2e27,
                        0x2e27, 0x2e29, 0x2e29, 0x3009, 0x3009, 0x300b, 0x300b, 0x300d, 0x300d, 0x300f, 0x300f, 0x3011, 0x3011, 0x3015, 0x3015, 0x3017, 0x3017, 0x3019, 0x3019, 0x301b, 0x301b, 0x301e,
                        0x301f, 0xfd3e, 0xfd3e, 0xfe18, 0xfe18, 0xfe36, 0xfe36, 0xfe38, 0xfe38, 0xfe3a, 0xfe3a, 0xfe3c, 0xfe3c, 0xfe3e, 0xfe3e, 0xfe40, 0xfe40, 0xfe42, 0xfe42, 0xfe44, 0xfe44, 0xfe48,
                        0xfe48, 0xfe5a, 0xfe5a, 0xfe5c, 0xfe5c, 0xfe5e, 0xfe5e, 0xff09, 0xff09, 0xff3d, 0xff3d, 0xff5d, 0xff5d, 0xff60, 0xff60, 0xff63, 0xff63));
    }

    private static void populateGC_PF() {
        SET_ENCODINGS.put("gc=Pf", CodePointSet.createNoDedup(0x00bb, 0x00bb, 0x2019, 0x2019, 0x201d, 0x201d, 0x203a, 0x203a, 0x2e03, 0x2e03, 0x2e05, 0x2e05, 0x2e0a, 0x2e0a, 0x2e0d, 0x2e0d, 0x2e1d,
                        0x2e1d, 0x2e21, 0x2e21));
    }

    private static void populateGC_PI() {
        SET_ENCODINGS.put("gc=Pi", CodePointSet.createNoDedup(0x00ab, 0x00ab, 0x2018, 0x2018, 0x201b, 0x201c, 0x201f, 0x201f, 0x2039, 0x2039, 0x2e02, 0x2e02, 0x2e04, 0x2e04, 0x2e09, 0x2e09, 0x2e0c,
                        0x2e0c, 0x2e1c, 0x2e1c, 0x2e20, 0x2e20));
    }

    private static void populateGC_PO() {
        SET_ENCODINGS.put("gc=Po", CodePointSet.createNoDedup(0x0021, 0x0023, 0x0025, 0x0027, 0x002a, 0x002a, 0x002c, 0x002c, 0x002e, 0x002f, 0x003a, 0x003b, 0x003f, 0x0040, 0x005c, 0x005c, 0x00a1,
                        0x00a1, 0x00a7, 0x00a7, 0x00b6, 0x00b7, 0x00bf, 0x00bf, 0x037e, 0x037e, 0x0387, 0x0387, 0x055a, 0x055f, 0x0589, 0x0589, 0x05c0, 0x05c0, 0x05c3, 0x05c3, 0x05c6, 0x05c6, 0x05f3,
                        0x05f4, 0x0609, 0x060a, 0x060c, 0x060d, 0x061b, 0x061b, 0x061e, 0x061f, 0x066a, 0x066d, 0x06d4, 0x06d4, 0x0700, 0x070d, 0x07f7, 0x07f9, 0x0830, 0x083e, 0x085e, 0x085e, 0x0964,
                        0x0965, 0x0970, 0x0970, 0x09fd, 0x09fd, 0x0a76, 0x0a76, 0x0af0, 0x0af0, 0x0c77, 0x0c77, 0x0c84, 0x0c84, 0x0df4, 0x0df4, 0x0e4f, 0x0e4f, 0x0e5a, 0x0e5b, 0x0f04, 0x0f12, 0x0f14,
                        0x0f14, 0x0f85, 0x0f85, 0x0fd0, 0x0fd4, 0x0fd9, 0x0fda, 0x104a, 0x104f, 0x10fb, 0x10fb, 0x1360, 0x1368, 0x166e, 0x166e, 0x16eb, 0x16ed, 0x1735, 0x1736, 0x17d4, 0x17d6, 0x17d8,
                        0x17da, 0x1800, 0x1805, 0x1807, 0x180a, 0x1944, 0x1945, 0x1a1e, 0x1a1f, 0x1aa0, 0x1aa6, 0x1aa8, 0x1aad, 0x1b5a, 0x1b60, 0x1bfc, 0x1bff, 0x1c3b, 0x1c3f, 0x1c7e, 0x1c7f, 0x1cc0,
                        0x1cc7, 0x1cd3, 0x1cd3, 0x2016, 0x2017, 0x2020, 0x2027, 0x2030, 0x2038, 0x203b, 0x203e, 0x2041, 0x2043, 0x2047, 0x2051, 0x2053, 0x2053, 0x2055, 0x205e, 0x2cf9, 0x2cfc, 0x2cfe,
                        0x2cff, 0x2d70, 0x2d70, 0x2e00, 0x2e01, 0x2e06, 0x2e08, 0x2e0b, 0x2e0b, 0x2e0e, 0x2e16, 0x2e18, 0x2e19, 0x2e1b, 0x2e1b, 0x2e1e, 0x2e1f, 0x2e2a, 0x2e2e, 0x2e30, 0x2e39, 0x2e3c,
                        0x2e3f, 0x2e41, 0x2e41, 0x2e43, 0x2e4f, 0x3001, 0x3003, 0x303d, 0x303d, 0x30fb, 0x30fb, 0xa4fe, 0xa4ff, 0xa60d, 0xa60f, 0xa673, 0xa673, 0xa67e, 0xa67e, 0xa6f2, 0xa6f7, 0xa874,
                        0xa877, 0xa8ce, 0xa8cf, 0xa8f8, 0xa8fa, 0xa8fc, 0xa8fc, 0xa92e, 0xa92f, 0xa95f, 0xa95f, 0xa9c1, 0xa9cd, 0xa9de, 0xa9df, 0xaa5c, 0xaa5f, 0xaade, 0xaadf, 0xaaf0, 0xaaf1, 0xabeb,
                        0xabeb, 0xfe10, 0xfe16, 0xfe19, 0xfe19, 0xfe30, 0xfe30, 0xfe45, 0xfe46, 0xfe49, 0xfe4c, 0xfe50, 0xfe52, 0xfe54, 0xfe57, 0xfe5f, 0xfe61, 0xfe68, 0xfe68, 0xfe6a, 0xfe6b, 0xff01,
                        0xff03, 0xff05, 0xff07, 0xff0a, 0xff0a, 0xff0c, 0xff0c, 0xff0e, 0xff0f, 0xff1a, 0xff1b, 0xff1f, 0xff20, 0xff3c, 0xff3c, 0xff61, 0xff61, 0xff64, 0xff65, 0x10100, 0x10102,
                        0x1039f, 0x1039f, 0x103d0, 0x103d0, 0x1056f, 0x1056f, 0x10857, 0x10857, 0x1091f, 0x1091f, 0x1093f, 0x1093f, 0x10a50, 0x10a58, 0x10a7f, 0x10a7f, 0x10af0, 0x10af6, 0x10b39,
                        0x10b3f, 0x10b99, 0x10b9c, 0x10f55, 0x10f59, 0x11047, 0x1104d, 0x110bb, 0x110bc, 0x110be, 0x110c1, 0x11140, 0x11143, 0x11174, 0x11175, 0x111c5, 0x111c8, 0x111cd, 0x111cd,
                        0x111db, 0x111db, 0x111dd, 0x111df, 0x11238, 0x1123d, 0x112a9, 0x112a9, 0x1144b, 0x1144f, 0x1145b, 0x1145b, 0x1145d, 0x1145d, 0x114c6, 0x114c6, 0x115c1, 0x115d7, 0x11641,
                        0x11643, 0x11660, 0x1166c, 0x1173c, 0x1173e, 0x1183b, 0x1183b, 0x119e2, 0x119e2, 0x11a3f, 0x11a46, 0x11a9a, 0x11a9c, 0x11a9e, 0x11aa2, 0x11c41, 0x11c45, 0x11c70, 0x11c71,
                        0x11ef7, 0x11ef8, 0x11fff, 0x11fff, 0x12470, 0x12474, 0x16a6e, 0x16a6f, 0x16af5, 0x16af5, 0x16b37, 0x16b3b, 0x16b44, 0x16b44, 0x16e97, 0x16e9a, 0x16fe2, 0x16fe2, 0x1bc9f,
                        0x1bc9f, 0x1da87, 0x1da8b, 0x1e95e, 0x1e95f));
    }

    private static void populateGC_PS() {
        SET_ENCODINGS.put("gc=Ps",
                        CodePointSet.createNoDedup(0x0028, 0x0028, 0x005b, 0x005b, 0x007b, 0x007b, 0x0f3a, 0x0f3a, 0x0f3c, 0x0f3c, 0x169b, 0x169b, 0x201a, 0x201a, 0x201e, 0x201e, 0x2045, 0x2045,
                                        0x207d, 0x207d, 0x208d, 0x208d, 0x2308, 0x2308, 0x230a, 0x230a, 0x2329, 0x2329, 0x2768, 0x2768, 0x276a, 0x276a, 0x276c, 0x276c, 0x276e, 0x276e, 0x2770, 0x2770,
                                        0x2772, 0x2772, 0x2774, 0x2774, 0x27c5, 0x27c5, 0x27e6, 0x27e6, 0x27e8, 0x27e8, 0x27ea, 0x27ea, 0x27ec, 0x27ec, 0x27ee, 0x27ee, 0x2983, 0x2983, 0x2985, 0x2985,
                                        0x2987, 0x2987, 0x2989, 0x2989, 0x298b, 0x298b, 0x298d, 0x298d, 0x298f, 0x298f, 0x2991, 0x2991, 0x2993, 0x2993, 0x2995, 0x2995, 0x2997, 0x2997, 0x29d8, 0x29d8,
                                        0x29da, 0x29da, 0x29fc, 0x29fc, 0x2e22, 0x2e22, 0x2e24, 0x2e24, 0x2e26, 0x2e26, 0x2e28, 0x2e28, 0x2e42, 0x2e42, 0x3008, 0x3008, 0x300a, 0x300a, 0x300c, 0x300c,
                                        0x300e, 0x300e, 0x3010, 0x3010, 0x3014, 0x3014, 0x3016, 0x3016, 0x3018, 0x3018, 0x301a, 0x301a, 0x301d, 0x301d, 0xfd3f, 0xfd3f, 0xfe17, 0xfe17, 0xfe35, 0xfe35,
                                        0xfe37, 0xfe37, 0xfe39, 0xfe39, 0xfe3b, 0xfe3b, 0xfe3d, 0xfe3d, 0xfe3f, 0xfe3f, 0xfe41, 0xfe41, 0xfe43, 0xfe43, 0xfe47, 0xfe47, 0xfe59, 0xfe59, 0xfe5b, 0xfe5b,
                                        0xfe5d, 0xfe5d, 0xff08, 0xff08, 0xff3b, 0xff3b, 0xff5b, 0xff5b, 0xff5f, 0xff5f, 0xff62, 0xff62));
    }

    private static void populateGC_SC() {
        SET_ENCODINGS.put("gc=Sc",
                        CodePointSet.createNoDedup(0x0024, 0x0024, 0x00a2, 0x00a5, 0x058f, 0x058f, 0x060b, 0x060b, 0x07fe, 0x07ff, 0x09f2, 0x09f3, 0x09fb, 0x09fb, 0x0af1, 0x0af1, 0x0bf9, 0x0bf9,
                                        0x0e3f, 0x0e3f, 0x17db, 0x17db, 0x20a0, 0x20bf, 0xa838, 0xa838, 0xfdfc, 0xfdfc, 0xfe69, 0xfe69, 0xff04, 0xff04, 0xffe0, 0xffe1, 0xffe5, 0xffe6, 0x11fdd,
                                        0x11fe0, 0x1e2ff, 0x1e2ff, 0x1ecb0, 0x1ecb0));
    }

    private static void populateGC_SK() {
        SET_ENCODINGS.put("gc=Sk", CodePointSet.createNoDedup(0x005e, 0x005e, 0x0060, 0x0060, 0x00a8, 0x00a8, 0x00af, 0x00af, 0x00b4, 0x00b4, 0x00b8, 0x00b8, 0x02c2, 0x02c5, 0x02d2, 0x02df, 0x02e5,
                        0x02eb, 0x02ed, 0x02ed, 0x02ef, 0x02ff, 0x0375, 0x0375, 0x0384, 0x0385, 0x1fbd, 0x1fbd, 0x1fbf, 0x1fc1, 0x1fcd, 0x1fcf, 0x1fdd, 0x1fdf, 0x1fed, 0x1fef, 0x1ffd, 0x1ffe, 0x309b,
                        0x309c, 0xa700, 0xa716, 0xa720, 0xa721, 0xa789, 0xa78a, 0xab5b, 0xab5b, 0xfbb2, 0xfbc1, 0xff3e, 0xff3e, 0xff40, 0xff40, 0xffe3, 0xffe3, 0x1f3fb, 0x1f3ff));
    }

    private static void populateGC_SM() {
        SET_ENCODINGS.put("gc=Sm",
                        CodePointSet.createNoDedup(0x002b, 0x002b, 0x003c, 0x003e, 0x007c, 0x007c, 0x007e, 0x007e, 0x00ac, 0x00ac, 0x00b1, 0x00b1, 0x00d7, 0x00d7, 0x00f7, 0x00f7, 0x03f6, 0x03f6,
                                        0x0606, 0x0608, 0x2044, 0x2044, 0x2052, 0x2052, 0x207a, 0x207c, 0x208a, 0x208c, 0x2118, 0x2118, 0x2140, 0x2144, 0x214b, 0x214b, 0x2190, 0x2194, 0x219a, 0x219b,
                                        0x21a0, 0x21a0, 0x21a3, 0x21a3, 0x21a6, 0x21a6, 0x21ae, 0x21ae, 0x21ce, 0x21cf, 0x21d2, 0x21d2, 0x21d4, 0x21d4, 0x21f4, 0x22ff, 0x2320, 0x2321, 0x237c, 0x237c,
                                        0x239b, 0x23b3, 0x23dc, 0x23e1, 0x25b7, 0x25b7, 0x25c1, 0x25c1, 0x25f8, 0x25ff, 0x266f, 0x266f, 0x27c0, 0x27c4, 0x27c7, 0x27e5, 0x27f0, 0x27ff, 0x2900, 0x2982,
                                        0x2999, 0x29d7, 0x29dc, 0x29fb, 0x29fe, 0x2aff, 0x2b30, 0x2b44, 0x2b47, 0x2b4c, 0xfb29, 0xfb29, 0xfe62, 0xfe62, 0xfe64, 0xfe66, 0xff0b, 0xff0b, 0xff1c, 0xff1e,
                                        0xff5c, 0xff5c, 0xff5e, 0xff5e, 0xffe2, 0xffe2, 0xffe9, 0xffec, 0x1d6c1, 0x1d6c1, 0x1d6db, 0x1d6db, 0x1d6fb, 0x1d6fb, 0x1d715, 0x1d715, 0x1d735, 0x1d735,
                                        0x1d74f, 0x1d74f, 0x1d76f, 0x1d76f, 0x1d789, 0x1d789, 0x1d7a9, 0x1d7a9, 0x1d7c3, 0x1d7c3, 0x1eef0, 0x1eef1));
    }

    private static void populateGC_SO() {
        SET_ENCODINGS.put("gc=So", CodePointSet.createNoDedup(0x00a6, 0x00a6, 0x00a9, 0x00a9, 0x00ae, 0x00ae, 0x00b0, 0x00b0, 0x0482, 0x0482, 0x058d, 0x058e, 0x060e, 0x060f, 0x06de, 0x06de, 0x06e9,
                        0x06e9, 0x06fd, 0x06fe, 0x07f6, 0x07f6, 0x09fa, 0x09fa, 0x0b70, 0x0b70, 0x0bf3, 0x0bf8, 0x0bfa, 0x0bfa, 0x0c7f, 0x0c7f, 0x0d4f, 0x0d4f, 0x0d79, 0x0d79, 0x0f01, 0x0f03, 0x0f13,
                        0x0f13, 0x0f15, 0x0f17, 0x0f1a, 0x0f1f, 0x0f34, 0x0f34, 0x0f36, 0x0f36, 0x0f38, 0x0f38, 0x0fbe, 0x0fc5, 0x0fc7, 0x0fcc, 0x0fce, 0x0fcf, 0x0fd5, 0x0fd8, 0x109e, 0x109f, 0x1390,
                        0x1399, 0x166d, 0x166d, 0x1940, 0x1940, 0x19de, 0x19ff, 0x1b61, 0x1b6a, 0x1b74, 0x1b7c, 0x2100, 0x2101, 0x2103, 0x2106, 0x2108, 0x2109, 0x2114, 0x2114, 0x2116, 0x2117, 0x211e,
                        0x2123, 0x2125, 0x2125, 0x2127, 0x2127, 0x2129, 0x2129, 0x212e, 0x212e, 0x213a, 0x213b, 0x214a, 0x214a, 0x214c, 0x214d, 0x214f, 0x214f, 0x218a, 0x218b, 0x2195, 0x2199, 0x219c,
                        0x219f, 0x21a1, 0x21a2, 0x21a4, 0x21a5, 0x21a7, 0x21ad, 0x21af, 0x21cd, 0x21d0, 0x21d1, 0x21d3, 0x21d3, 0x21d5, 0x21f3, 0x2300, 0x2307, 0x230c, 0x231f, 0x2322, 0x2328, 0x232b,
                        0x237b, 0x237d, 0x239a, 0x23b4, 0x23db, 0x23e2, 0x2426, 0x2440, 0x244a, 0x249c, 0x24e9, 0x2500, 0x25b6, 0x25b8, 0x25c0, 0x25c2, 0x25f7, 0x2600, 0x266e, 0x2670, 0x2767, 0x2794,
                        0x27bf, 0x2800, 0x28ff, 0x2b00, 0x2b2f, 0x2b45, 0x2b46, 0x2b4d, 0x2b73, 0x2b76, 0x2b95, 0x2b98, 0x2bff, 0x2ce5, 0x2cea, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, 0x2ff0,
                        0x2ffb, 0x3004, 0x3004, 0x3012, 0x3013, 0x3020, 0x3020, 0x3036, 0x3037, 0x303e, 0x303f, 0x3190, 0x3191, 0x3196, 0x319f, 0x31c0, 0x31e3, 0x3200, 0x321e, 0x322a, 0x3247, 0x3250,
                        0x3250, 0x3260, 0x327f, 0x328a, 0x32b0, 0x32c0, 0x33ff, 0x4dc0, 0x4dff, 0xa490, 0xa4c6, 0xa828, 0xa82b, 0xa836, 0xa837, 0xa839, 0xa839, 0xaa77, 0xaa79, 0xfdfd, 0xfdfd, 0xffe4,
                        0xffe4, 0xffe8, 0xffe8, 0xffed, 0xffee, 0xfffc, 0xfffd, 0x10137, 0x1013f, 0x10179, 0x10189, 0x1018c, 0x1018e, 0x10190, 0x1019b, 0x101a0, 0x101a0, 0x101d0, 0x101fc, 0x10877,
                        0x10878, 0x10ac8, 0x10ac8, 0x1173f, 0x1173f, 0x11fd5, 0x11fdc, 0x11fe1, 0x11ff1, 0x16b3c, 0x16b3f, 0x16b45, 0x16b45, 0x1bc9c, 0x1bc9c, 0x1d000, 0x1d0f5, 0x1d100, 0x1d126,
                        0x1d129, 0x1d164, 0x1d16a, 0x1d16c, 0x1d183, 0x1d184, 0x1d18c, 0x1d1a9, 0x1d1ae, 0x1d1e8, 0x1d200, 0x1d241, 0x1d245, 0x1d245, 0x1d300, 0x1d356, 0x1d800, 0x1d9ff, 0x1da37,
                        0x1da3a, 0x1da6d, 0x1da74, 0x1da76, 0x1da83, 0x1da85, 0x1da86, 0x1e14f, 0x1e14f, 0x1ecac, 0x1ecac, 0x1ed2e, 0x1ed2e, 0x1f000, 0x1f02b, 0x1f030, 0x1f093, 0x1f0a0, 0x1f0ae,
                        0x1f0b1, 0x1f0bf, 0x1f0c1, 0x1f0cf, 0x1f0d1, 0x1f0f5, 0x1f110, 0x1f16c, 0x1f170, 0x1f1ac, 0x1f1e6, 0x1f202, 0x1f210, 0x1f23b, 0x1f240, 0x1f248, 0x1f250, 0x1f251, 0x1f260,
                        0x1f265, 0x1f300, 0x1f3fa, 0x1f400, 0x1f6d5, 0x1f6e0, 0x1f6ec, 0x1f6f0, 0x1f6fa, 0x1f700, 0x1f773, 0x1f780, 0x1f7d8, 0x1f7e0, 0x1f7eb, 0x1f800, 0x1f80b, 0x1f810, 0x1f847,
                        0x1f850, 0x1f859, 0x1f860, 0x1f887, 0x1f890, 0x1f8ad, 0x1f900, 0x1f90b, 0x1f90d, 0x1f971, 0x1f973, 0x1f976, 0x1f97a, 0x1f9a2, 0x1f9a5, 0x1f9aa, 0x1f9ae, 0x1f9ca, 0x1f9cd,
                        0x1fa53, 0x1fa60, 0x1fa6d, 0x1fa70, 0x1fa73, 0x1fa78, 0x1fa7a, 0x1fa80, 0x1fa82, 0x1fa90, 0x1fa95));
    }

    private static void populateGC_ZL() {
        SET_ENCODINGS.put("gc=Zl", CodePointSet.createNoDedup(0x2028, 0x2028));
    }

    private static void populateGC_ZP() {
        SET_ENCODINGS.put("gc=Zp", CodePointSet.createNoDedup(0x2029, 0x2029));
    }

    private static void populateGC_ZS() {
        SET_ENCODINGS.put("gc=Zs", CodePointSet.createNoDedup(0x0020, 0x0020, 0x00a0, 0x00a0, 0x1680, 0x1680, 0x2000, 0x200a, 0x202f, 0x202f, 0x205f, 0x205f, 0x3000, 0x3000));
    }

    private static void populateSC_ADLM() {
        SET_ENCODINGS.put("sc=Adlm", CodePointSet.createNoDedup(0x1e900, 0x1e94b, 0x1e950, 0x1e959, 0x1e95e, 0x1e95f));
    }

    private static void populateSC_AGHB() {
        SET_ENCODINGS.put("sc=Aghb", CodePointSet.createNoDedup(0x10530, 0x10563, 0x1056f, 0x1056f));
    }

    private static void populateSC_AHOM() {
        SET_ENCODINGS.put("sc=Ahom", CodePointSet.createNoDedup(0x11700, 0x1171a, 0x1171d, 0x1172b, 0x11730, 0x1173f));
    }

    private static void populateSC_ARAB() {
        SET_ENCODINGS.put("sc=Arab", CodePointSet.createNoDedup(0x0600, 0x0604, 0x0606, 0x060b, 0x060d, 0x061a, 0x061c, 0x061c, 0x061e, 0x061e, 0x0620, 0x063f, 0x0641, 0x064a, 0x0656, 0x066f, 0x0671,
                        0x06dc, 0x06de, 0x06ff, 0x0750, 0x077f, 0x08a0, 0x08b4, 0x08b6, 0x08bd, 0x08d3, 0x08e1, 0x08e3, 0x08ff, 0xfb50, 0xfbc1, 0xfbd3, 0xfd3d, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0,
                        0xfdfd, 0xfe70, 0xfe74, 0xfe76, 0xfefc, 0x10e60, 0x10e7e, 0x1ee00, 0x1ee03, 0x1ee05, 0x1ee1f, 0x1ee21, 0x1ee22, 0x1ee24, 0x1ee24, 0x1ee27, 0x1ee27, 0x1ee29, 0x1ee32, 0x1ee34,
                        0x1ee37, 0x1ee39, 0x1ee39, 0x1ee3b, 0x1ee3b, 0x1ee42, 0x1ee42, 0x1ee47, 0x1ee47, 0x1ee49, 0x1ee49, 0x1ee4b, 0x1ee4b, 0x1ee4d, 0x1ee4f, 0x1ee51, 0x1ee52, 0x1ee54, 0x1ee54,
                        0x1ee57, 0x1ee57, 0x1ee59, 0x1ee59, 0x1ee5b, 0x1ee5b, 0x1ee5d, 0x1ee5d, 0x1ee5f, 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64, 0x1ee64, 0x1ee67, 0x1ee6a, 0x1ee6c, 0x1ee72, 0x1ee74,
                        0x1ee77, 0x1ee79, 0x1ee7c, 0x1ee7e, 0x1ee7e, 0x1ee80, 0x1ee89, 0x1ee8b, 0x1ee9b, 0x1eea1, 0x1eea3, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x1eef0, 0x1eef1));
    }

    private static void populateSC_ARMI() {
        SET_ENCODINGS.put("sc=Armi", CodePointSet.createNoDedup(0x10840, 0x10855, 0x10857, 0x1085f));
    }

    private static void populateSC_ARMN() {
        SET_ENCODINGS.put("sc=Armn", CodePointSet.createNoDedup(0x0531, 0x0556, 0x0559, 0x0588, 0x058a, 0x058a, 0x058d, 0x058f, 0xfb13, 0xfb17));
    }

    private static void populateSC_AVST() {
        SET_ENCODINGS.put("sc=Avst", CodePointSet.createNoDedup(0x10b00, 0x10b35, 0x10b39, 0x10b3f));
    }

    private static void populateSC_BALI() {
        SET_ENCODINGS.put("sc=Bali", CodePointSet.createNoDedup(0x1b00, 0x1b4b, 0x1b50, 0x1b7c));
    }

    private static void populateSC_BAMU() {
        SET_ENCODINGS.put("sc=Bamu", CodePointSet.createNoDedup(0xa6a0, 0xa6f7, 0x16800, 0x16a38));
    }

    private static void populateSC_BASS() {
        SET_ENCODINGS.put("sc=Bass", CodePointSet.createNoDedup(0x16ad0, 0x16aed, 0x16af0, 0x16af5));
    }

    private static void populateSC_BATK() {
        SET_ENCODINGS.put("sc=Batk", CodePointSet.createNoDedup(0x1bc0, 0x1bf3, 0x1bfc, 0x1bff));
    }

    private static void populateSC_BENG() {
        SET_ENCODINGS.put("sc=Beng", CodePointSet.createNoDedup(0x0980, 0x0983, 0x0985, 0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, 0x09aa, 0x09b0, 0x09b2, 0x09b2, 0x09b6, 0x09b9, 0x09bc, 0x09c4, 0x09c7,
                        0x09c8, 0x09cb, 0x09ce, 0x09d7, 0x09d7, 0x09dc, 0x09dd, 0x09df, 0x09e3, 0x09e6, 0x09fe));
    }

    private static void populateSC_BHKS() {
        SET_ENCODINGS.put("sc=Bhks", CodePointSet.createNoDedup(0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c45, 0x11c50, 0x11c6c));
    }

    private static void populateSC_BOPO() {
        SET_ENCODINGS.put("sc=Bopo", CodePointSet.createNoDedup(0x02ea, 0x02eb, 0x3105, 0x312f, 0x31a0, 0x31ba));
    }

    private static void populateSC_BRAH() {
        SET_ENCODINGS.put("sc=Brah", CodePointSet.createNoDedup(0x11000, 0x1104d, 0x11052, 0x1106f, 0x1107f, 0x1107f));
    }

    private static void populateSC_BRAI() {
        SET_ENCODINGS.put("sc=Brai", CodePointSet.createNoDedup(0x2800, 0x28ff));
    }

    private static void populateSC_BUGI() {
        SET_ENCODINGS.put("sc=Bugi", CodePointSet.createNoDedup(0x1a00, 0x1a1b, 0x1a1e, 0x1a1f));
    }

    private static void populateSC_BUHD() {
        SET_ENCODINGS.put("sc=Buhd", CodePointSet.createNoDedup(0x1740, 0x1753));
    }

    private static void populateSC_CAKM() {
        SET_ENCODINGS.put("sc=Cakm", CodePointSet.createNoDedup(0x11100, 0x11134, 0x11136, 0x11146));
    }

    private static void populateSC_CANS() {
        SET_ENCODINGS.put("sc=Cans", CodePointSet.createNoDedup(0x1400, 0x167f, 0x18b0, 0x18f5));
    }

    private static void populateSC_CARI() {
        SET_ENCODINGS.put("sc=Cari", CodePointSet.createNoDedup(0x102a0, 0x102d0));
    }

    private static void populateSC_CHAM() {
        SET_ENCODINGS.put("sc=Cham", CodePointSet.createNoDedup(0xaa00, 0xaa36, 0xaa40, 0xaa4d, 0xaa50, 0xaa59, 0xaa5c, 0xaa5f));
    }

    private static void populateSC_CHER() {
        SET_ENCODINGS.put("sc=Cher", CodePointSet.createNoDedup(0x13a0, 0x13f5, 0x13f8, 0x13fd, 0xab70, 0xabbf));
    }

    private static void populateSC_COPT() {
        SET_ENCODINGS.put("sc=Copt", CodePointSet.createNoDedup(0x03e2, 0x03ef, 0x2c80, 0x2cf3, 0x2cf9, 0x2cff));
    }

    private static void populateSC_CPRT() {
        SET_ENCODINGS.put("sc=Cprt", CodePointSet.createNoDedup(0x10800, 0x10805, 0x10808, 0x10808, 0x1080a, 0x10835, 0x10837, 0x10838, 0x1083c, 0x1083c, 0x1083f, 0x1083f));
    }

    private static void populateSC_CYRL() {
        SET_ENCODINGS.put("sc=Cyrl", CodePointSet.createNoDedup(0x0400, 0x0484, 0x0487, 0x052f, 0x1c80, 0x1c88, 0x1d2b, 0x1d2b, 0x1d78, 0x1d78, 0x2de0, 0x2dff, 0xa640, 0xa69f, 0xfe2e, 0xfe2f));
    }

    private static void populateSC_DEVA() {
        SET_ENCODINGS.put("sc=Deva", CodePointSet.createNoDedup(0x0900, 0x0950, 0x0955, 0x0963, 0x0966, 0x097f, 0xa8e0, 0xa8ff));
    }

    private static void populateSC_DOGR() {
        SET_ENCODINGS.put("sc=Dogr", CodePointSet.createNoDedup(0x11800, 0x1183b));
    }

    private static void populateSC_DSRT() {
        SET_ENCODINGS.put("sc=Dsrt", CodePointSet.createNoDedup(0x10400, 0x1044f));
    }

    private static void populateSC_DUPL() {
        SET_ENCODINGS.put("sc=Dupl", CodePointSet.createNoDedup(0x1bc00, 0x1bc6a, 0x1bc70, 0x1bc7c, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9c, 0x1bc9f));
    }

    private static void populateSC_EGYP() {
        SET_ENCODINGS.put("sc=Egyp", CodePointSet.createNoDedup(0x13000, 0x1342e, 0x13430, 0x13438));
    }

    private static void populateSC_ELBA() {
        SET_ENCODINGS.put("sc=Elba", CodePointSet.createNoDedup(0x10500, 0x10527));
    }

    private static void populateSC_ELYM() {
        SET_ENCODINGS.put("sc=Elym", CodePointSet.createNoDedup(0x10fe0, 0x10ff6));
    }

    private static void populateSC_ETHI() {
        SET_ENCODINGS.put("sc=Ethi",
                        CodePointSet.createNoDedup(0x1200, 0x1248, 0x124a, 0x124d, 0x1250, 0x1256, 0x1258, 0x1258, 0x125a, 0x125d, 0x1260, 0x1288, 0x128a, 0x128d, 0x1290, 0x12b0, 0x12b2, 0x12b5,
                                        0x12b8, 0x12be, 0x12c0, 0x12c0, 0x12c2, 0x12c5, 0x12c8, 0x12d6, 0x12d8, 0x1310, 0x1312, 0x1315, 0x1318, 0x135a, 0x135d, 0x137c, 0x1380, 0x1399, 0x2d80, 0x2d96,
                                        0x2da0, 0x2da6, 0x2da8, 0x2dae, 0x2db0, 0x2db6, 0x2db8, 0x2dbe, 0x2dc0, 0x2dc6, 0x2dc8, 0x2dce, 0x2dd0, 0x2dd6, 0x2dd8, 0x2dde, 0xab01, 0xab06, 0xab09, 0xab0e,
                                        0xab11, 0xab16, 0xab20, 0xab26, 0xab28, 0xab2e));
    }

    private static void populateSC_GEOR() {
        SET_ENCODINGS.put("sc=Geor", CodePointSet.createNoDedup(0x10a0, 0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x10d0, 0x10fa, 0x10fc, 0x10ff, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x2d00, 0x2d25, 0x2d27,
                        0x2d27, 0x2d2d, 0x2d2d));
    }

    private static void populateSC_GLAG() {
        SET_ENCODINGS.put("sc=Glag", CodePointSet.createNoDedup(0x2c00, 0x2c2e, 0x2c30, 0x2c5e, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a));
    }

    private static void populateSC_GONG() {
        SET_ENCODINGS.put("sc=Gong", CodePointSet.createNoDedup(0x11d60, 0x11d65, 0x11d67, 0x11d68, 0x11d6a, 0x11d8e, 0x11d90, 0x11d91, 0x11d93, 0x11d98, 0x11da0, 0x11da9));
    }

    private static void populateSC_GONM() {
        SET_ENCODINGS.put("sc=Gonm", CodePointSet.createNoDedup(0x11d00, 0x11d06, 0x11d08, 0x11d09, 0x11d0b, 0x11d36, 0x11d3a, 0x11d3a, 0x11d3c, 0x11d3d, 0x11d3f, 0x11d47, 0x11d50, 0x11d59));
    }

    private static void populateSC_GOTH() {
        SET_ENCODINGS.put("sc=Goth", CodePointSet.createNoDedup(0x10330, 0x1034a));
    }

    private static void populateSC_GRAN() {
        SET_ENCODINGS.put("sc=Gran", CodePointSet.createNoDedup(0x11300, 0x11303, 0x11305, 0x1130c, 0x1130f, 0x11310, 0x11313, 0x11328, 0x1132a, 0x11330, 0x11332, 0x11333, 0x11335, 0x11339, 0x1133c,
                        0x11344, 0x11347, 0x11348, 0x1134b, 0x1134d, 0x11350, 0x11350, 0x11357, 0x11357, 0x1135d, 0x11363, 0x11366, 0x1136c, 0x11370, 0x11374));
    }

    private static void populateSC_GREK() {
        SET_ENCODINGS.put("sc=Grek",
                        CodePointSet.createNoDedup(0x0370, 0x0373, 0x0375, 0x0377, 0x037a, 0x037d, 0x037f, 0x037f, 0x0384, 0x0384, 0x0386, 0x0386, 0x0388, 0x038a, 0x038c, 0x038c, 0x038e, 0x03a1,
                                        0x03a3, 0x03e1, 0x03f0, 0x03ff, 0x1d26, 0x1d2a, 0x1d5d, 0x1d61, 0x1d66, 0x1d6a, 0x1dbf, 0x1dbf, 0x1f00, 0x1f15, 0x1f18, 0x1f1d, 0x1f20, 0x1f45, 0x1f48, 0x1f4d,
                                        0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f7d, 0x1f80, 0x1fb4, 0x1fb6, 0x1fc4, 0x1fc6, 0x1fd3, 0x1fd6, 0x1fdb, 0x1fdd, 0x1fef,
                                        0x1ff2, 0x1ff4, 0x1ff6, 0x1ffe, 0x2126, 0x2126, 0xab65, 0xab65, 0x10140, 0x1018e, 0x101a0, 0x101a0, 0x1d200, 0x1d245));
    }

    private static void populateSC_GUJR() {
        SET_ENCODINGS.put("sc=Gujr", CodePointSet.createNoDedup(0x0a81, 0x0a83, 0x0a85, 0x0a8d, 0x0a8f, 0x0a91, 0x0a93, 0x0aa8, 0x0aaa, 0x0ab0, 0x0ab2, 0x0ab3, 0x0ab5, 0x0ab9, 0x0abc, 0x0ac5, 0x0ac7,
                        0x0ac9, 0x0acb, 0x0acd, 0x0ad0, 0x0ad0, 0x0ae0, 0x0ae3, 0x0ae6, 0x0af1, 0x0af9, 0x0aff));
    }

    private static void populateSC_GURU() {
        SET_ENCODINGS.put("sc=Guru", CodePointSet.createNoDedup(0x0a01, 0x0a03, 0x0a05, 0x0a0a, 0x0a0f, 0x0a10, 0x0a13, 0x0a28, 0x0a2a, 0x0a30, 0x0a32, 0x0a33, 0x0a35, 0x0a36, 0x0a38, 0x0a39, 0x0a3c,
                        0x0a3c, 0x0a3e, 0x0a42, 0x0a47, 0x0a48, 0x0a4b, 0x0a4d, 0x0a51, 0x0a51, 0x0a59, 0x0a5c, 0x0a5e, 0x0a5e, 0x0a66, 0x0a76));
    }

    private static void populateSC_HANG() {
        SET_ENCODINGS.put("sc=Hang", CodePointSet.createNoDedup(0x1100, 0x11ff, 0x302e, 0x302f, 0x3131, 0x318e, 0x3200, 0x321e, 0x3260, 0x327e, 0xa960, 0xa97c, 0xac00, 0xd7a3, 0xd7b0, 0xd7c6, 0xd7cb,
                        0xd7fb, 0xffa0, 0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, 0xffda, 0xffdc));
    }

    private static void populateSC_HANI() {
        SET_ENCODINGS.put("sc=Hani", CodePointSet.createNoDedup(0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, 0x3005, 0x3005, 0x3007, 0x3007, 0x3021, 0x3029, 0x3038, 0x303b, 0x3400, 0x4db5, 0x4e00,
                        0x9fef, 0xf900, 0xfa6d, 0xfa70, 0xfad9, 0x20000, 0x2a6d6, 0x2a700, 0x2b734, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, 0x2f800, 0x2fa1d));
    }

    private static void populateSC_HANO() {
        SET_ENCODINGS.put("sc=Hano", CodePointSet.createNoDedup(0x1720, 0x1734));
    }

    private static void populateSC_HATR() {
        SET_ENCODINGS.put("sc=Hatr", CodePointSet.createNoDedup(0x108e0, 0x108f2, 0x108f4, 0x108f5, 0x108fb, 0x108ff));
    }

    private static void populateSC_HEBR() {
        SET_ENCODINGS.put("sc=Hebr",
                        CodePointSet.createNoDedup(0x0591, 0x05c7, 0x05d0, 0x05ea, 0x05ef, 0x05f4, 0xfb1d, 0xfb36, 0xfb38, 0xfb3c, 0xfb3e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfb46, 0xfb4f));
    }

    private static void populateSC_HIRA() {
        SET_ENCODINGS.put("sc=Hira", CodePointSet.createNoDedup(0x3041, 0x3096, 0x309d, 0x309f, 0x1b001, 0x1b11e, 0x1b150, 0x1b152, 0x1f200, 0x1f200));
    }

    private static void populateSC_HLUW() {
        SET_ENCODINGS.put("sc=Hluw", CodePointSet.createNoDedup(0x14400, 0x14646));
    }

    private static void populateSC_HMNG() {
        SET_ENCODINGS.put("sc=Hmng", CodePointSet.createNoDedup(0x16b00, 0x16b45, 0x16b50, 0x16b59, 0x16b5b, 0x16b61, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f));
    }

    private static void populateSC_HMNP() {
        SET_ENCODINGS.put("sc=Hmnp", CodePointSet.createNoDedup(0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, 0x1e14e, 0x1e14f));
    }

    private static void populateSC_HUNG() {
        SET_ENCODINGS.put("sc=Hung", CodePointSet.createNoDedup(0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x10cfa, 0x10cff));
    }

    private static void populateSC_ITAL() {
        SET_ENCODINGS.put("sc=Ital", CodePointSet.createNoDedup(0x10300, 0x10323, 0x1032d, 0x1032f));
    }

    private static void populateSC_JAVA() {
        SET_ENCODINGS.put("sc=Java", CodePointSet.createNoDedup(0xa980, 0xa9cd, 0xa9d0, 0xa9d9, 0xa9de, 0xa9df));
    }

    private static void populateSC_KALI() {
        SET_ENCODINGS.put("sc=Kali", CodePointSet.createNoDedup(0xa900, 0xa92d, 0xa92f, 0xa92f));
    }

    private static void populateSC_KANA() {
        SET_ENCODINGS.put("sc=Kana",
                        CodePointSet.createNoDedup(0x30a1, 0x30fa, 0x30fd, 0x30ff, 0x31f0, 0x31ff, 0x32d0, 0x32fe, 0x3300, 0x3357, 0xff66, 0xff6f, 0xff71, 0xff9d, 0x1b000, 0x1b000, 0x1b164, 0x1b167));
    }

    private static void populateSC_KHAR() {
        SET_ENCODINGS.put("sc=Khar",
                        CodePointSet.createNoDedup(0x10a00, 0x10a03, 0x10a05, 0x10a06, 0x10a0c, 0x10a13, 0x10a15, 0x10a17, 0x10a19, 0x10a35, 0x10a38, 0x10a3a, 0x10a3f, 0x10a48, 0x10a50, 0x10a58));
    }

    private static void populateSC_KHMR() {
        SET_ENCODINGS.put("sc=Khmr", CodePointSet.createNoDedup(0x1780, 0x17dd, 0x17e0, 0x17e9, 0x17f0, 0x17f9, 0x19e0, 0x19ff));
    }

    private static void populateSC_KHOJ() {
        SET_ENCODINGS.put("sc=Khoj", CodePointSet.createNoDedup(0x11200, 0x11211, 0x11213, 0x1123e));
    }

    private static void populateSC_KNDA() {
        SET_ENCODINGS.put("sc=Knda", CodePointSet.createNoDedup(0x0c80, 0x0c8c, 0x0c8e, 0x0c90, 0x0c92, 0x0ca8, 0x0caa, 0x0cb3, 0x0cb5, 0x0cb9, 0x0cbc, 0x0cc4, 0x0cc6, 0x0cc8, 0x0cca, 0x0ccd, 0x0cd5,
                        0x0cd6, 0x0cde, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, 0x0cf1, 0x0cf2));
    }

    private static void populateSC_KTHI() {
        SET_ENCODINGS.put("sc=Kthi", CodePointSet.createNoDedup(0x11080, 0x110c1, 0x110cd, 0x110cd));
    }

    private static void populateSC_LANA() {
        SET_ENCODINGS.put("sc=Lana", CodePointSet.createNoDedup(0x1a20, 0x1a5e, 0x1a60, 0x1a7c, 0x1a7f, 0x1a89, 0x1a90, 0x1a99, 0x1aa0, 0x1aad));
    }

    private static void populateSC_LAOO() {
        SET_ENCODINGS.put("sc=Laoo", CodePointSet.createNoDedup(0x0e81, 0x0e82, 0x0e84, 0x0e84, 0x0e86, 0x0e8a, 0x0e8c, 0x0ea3, 0x0ea5, 0x0ea5, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, 0x0ec8,
                        0x0ecd, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf));
    }

    private static void populateSC_LATN() {
        SET_ENCODINGS.put("sc=Latn",
                        CodePointSet.createNoDedup(0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, 0x00ba, 0x00ba, 0x00c0, 0x00d6, 0x00d8, 0x00f6, 0x00f8, 0x02b8, 0x02e0, 0x02e4, 0x1d00, 0x1d25,
                                        0x1d2c, 0x1d5c, 0x1d62, 0x1d65, 0x1d6b, 0x1d77, 0x1d79, 0x1dbe, 0x1e00, 0x1eff, 0x2071, 0x2071, 0x207f, 0x207f, 0x2090, 0x209c, 0x212a, 0x212b, 0x2132, 0x2132,
                                        0x214e, 0x214e, 0x2160, 0x2188, 0x2c60, 0x2c7f, 0xa722, 0xa787, 0xa78b, 0xa7bf, 0xa7c2, 0xa7c6, 0xa7f7, 0xa7ff, 0xab30, 0xab5a, 0xab5c, 0xab64, 0xab66, 0xab67,
                                        0xfb00, 0xfb06, 0xff21, 0xff3a, 0xff41, 0xff5a));
    }

    private static void populateSC_LEPC() {
        SET_ENCODINGS.put("sc=Lepc", CodePointSet.createNoDedup(0x1c00, 0x1c37, 0x1c3b, 0x1c49, 0x1c4d, 0x1c4f));
    }

    private static void populateSC_LIMB() {
        SET_ENCODINGS.put("sc=Limb", CodePointSet.createNoDedup(0x1900, 0x191e, 0x1920, 0x192b, 0x1930, 0x193b, 0x1940, 0x1940, 0x1944, 0x194f));
    }

    private static void populateSC_LINA() {
        SET_ENCODINGS.put("sc=Lina", CodePointSet.createNoDedup(0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767));
    }

    private static void populateSC_LINB() {
        SET_ENCODINGS.put("sc=Linb", CodePointSet.createNoDedup(0x10000, 0x1000b, 0x1000d, 0x10026, 0x10028, 0x1003a, 0x1003c, 0x1003d, 0x1003f, 0x1004d, 0x10050, 0x1005d, 0x10080, 0x100fa));
    }

    private static void populateSC_LISU() {
        SET_ENCODINGS.put("sc=Lisu", CodePointSet.createNoDedup(0xa4d0, 0xa4ff));
    }

    private static void populateSC_LYCI() {
        SET_ENCODINGS.put("sc=Lyci", CodePointSet.createNoDedup(0x10280, 0x1029c));
    }

    private static void populateSC_LYDI() {
        SET_ENCODINGS.put("sc=Lydi", CodePointSet.createNoDedup(0x10920, 0x10939, 0x1093f, 0x1093f));
    }

    private static void populateSC_MAHJ() {
        SET_ENCODINGS.put("sc=Mahj", CodePointSet.createNoDedup(0x11150, 0x11176));
    }

    private static void populateSC_MAKA() {
        SET_ENCODINGS.put("sc=Maka", CodePointSet.createNoDedup(0x11ee0, 0x11ef8));
    }

    private static void populateSC_MAND() {
        SET_ENCODINGS.put("sc=Mand", CodePointSet.createNoDedup(0x0840, 0x085b, 0x085e, 0x085e));
    }

    private static void populateSC_MANI() {
        SET_ENCODINGS.put("sc=Mani", CodePointSet.createNoDedup(0x10ac0, 0x10ae6, 0x10aeb, 0x10af6));
    }

    private static void populateSC_MARC() {
        SET_ENCODINGS.put("sc=Marc", CodePointSet.createNoDedup(0x11c70, 0x11c8f, 0x11c92, 0x11ca7, 0x11ca9, 0x11cb6));
    }

    private static void populateSC_MEDF() {
        SET_ENCODINGS.put("sc=Medf", CodePointSet.createNoDedup(0x16e40, 0x16e9a));
    }

    private static void populateSC_MEND() {
        SET_ENCODINGS.put("sc=Mend", CodePointSet.createNoDedup(0x1e800, 0x1e8c4, 0x1e8c7, 0x1e8d6));
    }

    private static void populateSC_MERC() {
        SET_ENCODINGS.put("sc=Merc", CodePointSet.createNoDedup(0x109a0, 0x109b7, 0x109bc, 0x109cf, 0x109d2, 0x109ff));
    }

    private static void populateSC_MERO() {
        SET_ENCODINGS.put("sc=Mero", CodePointSet.createNoDedup(0x10980, 0x1099f));
    }

    private static void populateSC_MLYM() {
        SET_ENCODINGS.put("sc=Mlym", CodePointSet.createNoDedup(0x0d00, 0x0d03, 0x0d05, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, 0x0d46, 0x0d48, 0x0d4a, 0x0d4f, 0x0d54, 0x0d63, 0x0d66, 0x0d7f));
    }

    private static void populateSC_MODI() {
        SET_ENCODINGS.put("sc=Modi", CodePointSet.createNoDedup(0x11600, 0x11644, 0x11650, 0x11659));
    }

    private static void populateSC_MONG() {
        SET_ENCODINGS.put("sc=Mong", CodePointSet.createNoDedup(0x1800, 0x1801, 0x1804, 0x1804, 0x1806, 0x180e, 0x1810, 0x1819, 0x1820, 0x1878, 0x1880, 0x18aa, 0x11660, 0x1166c));
    }

    private static void populateSC_MROO() {
        SET_ENCODINGS.put("sc=Mroo", CodePointSet.createNoDedup(0x16a40, 0x16a5e, 0x16a60, 0x16a69, 0x16a6e, 0x16a6f));
    }

    private static void populateSC_MTEI() {
        SET_ENCODINGS.put("sc=Mtei", CodePointSet.createNoDedup(0xaae0, 0xaaf6, 0xabc0, 0xabed, 0xabf0, 0xabf9));
    }

    private static void populateSC_MULT() {
        SET_ENCODINGS.put("sc=Mult", CodePointSet.createNoDedup(0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, 0x1128f, 0x1129d, 0x1129f, 0x112a9));
    }

    private static void populateSC_MYMR() {
        SET_ENCODINGS.put("sc=Mymr", CodePointSet.createNoDedup(0x1000, 0x109f, 0xa9e0, 0xa9fe, 0xaa60, 0xaa7f));
    }

    private static void populateSC_NAND() {
        SET_ENCODINGS.put("sc=Nand", CodePointSet.createNoDedup(0x119a0, 0x119a7, 0x119aa, 0x119d7, 0x119da, 0x119e4));
    }

    private static void populateSC_NARB() {
        SET_ENCODINGS.put("sc=Narb", CodePointSet.createNoDedup(0x10a80, 0x10a9f));
    }

    private static void populateSC_NBAT() {
        SET_ENCODINGS.put("sc=Nbat", CodePointSet.createNoDedup(0x10880, 0x1089e, 0x108a7, 0x108af));
    }

    private static void populateSC_NEWA() {
        SET_ENCODINGS.put("sc=Newa", CodePointSet.createNoDedup(0x11400, 0x11459, 0x1145b, 0x1145b, 0x1145d, 0x1145f));
    }

    private static void populateSC_NKOO() {
        SET_ENCODINGS.put("sc=Nkoo", CodePointSet.createNoDedup(0x07c0, 0x07fa, 0x07fd, 0x07ff));
    }

    private static void populateSC_NSHU() {
        SET_ENCODINGS.put("sc=Nshu", CodePointSet.createNoDedup(0x16fe1, 0x16fe1, 0x1b170, 0x1b2fb));
    }

    private static void populateSC_OGAM() {
        SET_ENCODINGS.put("sc=Ogam", CodePointSet.createNoDedup(0x1680, 0x169c));
    }

    private static void populateSC_OLCK() {
        SET_ENCODINGS.put("sc=Olck", CodePointSet.createNoDedup(0x1c50, 0x1c7f));
    }

    private static void populateSC_ORKH() {
        SET_ENCODINGS.put("sc=Orkh", CodePointSet.createNoDedup(0x10c00, 0x10c48));
    }

    private static void populateSC_ORYA() {
        SET_ENCODINGS.put("sc=Orya", CodePointSet.createNoDedup(0x0b01, 0x0b03, 0x0b05, 0x0b0c, 0x0b0f, 0x0b10, 0x0b13, 0x0b28, 0x0b2a, 0x0b30, 0x0b32, 0x0b33, 0x0b35, 0x0b39, 0x0b3c, 0x0b44, 0x0b47,
                        0x0b48, 0x0b4b, 0x0b4d, 0x0b56, 0x0b57, 0x0b5c, 0x0b5d, 0x0b5f, 0x0b63, 0x0b66, 0x0b77));
    }

    private static void populateSC_OSGE() {
        SET_ENCODINGS.put("sc=Osge", CodePointSet.createNoDedup(0x104b0, 0x104d3, 0x104d8, 0x104fb));
    }

    private static void populateSC_OSMA() {
        SET_ENCODINGS.put("sc=Osma", CodePointSet.createNoDedup(0x10480, 0x1049d, 0x104a0, 0x104a9));
    }

    private static void populateSC_PALM() {
        SET_ENCODINGS.put("sc=Palm", CodePointSet.createNoDedup(0x10860, 0x1087f));
    }

    private static void populateSC_PAUC() {
        SET_ENCODINGS.put("sc=Pauc", CodePointSet.createNoDedup(0x11ac0, 0x11af8));
    }

    private static void populateSC_PERM() {
        SET_ENCODINGS.put("sc=Perm", CodePointSet.createNoDedup(0x10350, 0x1037a));
    }

    private static void populateSC_PHAG() {
        SET_ENCODINGS.put("sc=Phag", CodePointSet.createNoDedup(0xa840, 0xa877));
    }

    private static void populateSC_PHLI() {
        SET_ENCODINGS.put("sc=Phli", CodePointSet.createNoDedup(0x10b60, 0x10b72, 0x10b78, 0x10b7f));
    }

    private static void populateSC_PHLP() {
        SET_ENCODINGS.put("sc=Phlp", CodePointSet.createNoDedup(0x10b80, 0x10b91, 0x10b99, 0x10b9c, 0x10ba9, 0x10baf));
    }

    private static void populateSC_PHNX() {
        SET_ENCODINGS.put("sc=Phnx", CodePointSet.createNoDedup(0x10900, 0x1091b, 0x1091f, 0x1091f));
    }

    private static void populateSC_PLRD() {
        SET_ENCODINGS.put("sc=Plrd", CodePointSet.createNoDedup(0x16f00, 0x16f4a, 0x16f4f, 0x16f87, 0x16f8f, 0x16f9f));
    }

    private static void populateSC_PRTI() {
        SET_ENCODINGS.put("sc=Prti", CodePointSet.createNoDedup(0x10b40, 0x10b55, 0x10b58, 0x10b5f));
    }

    private static void populateSC_RJNG() {
        SET_ENCODINGS.put("sc=Rjng", CodePointSet.createNoDedup(0xa930, 0xa953, 0xa95f, 0xa95f));
    }

    private static void populateSC_ROHG() {
        SET_ENCODINGS.put("sc=Rohg", CodePointSet.createNoDedup(0x10d00, 0x10d27, 0x10d30, 0x10d39));
    }

    private static void populateSC_RUNR() {
        SET_ENCODINGS.put("sc=Runr", CodePointSet.createNoDedup(0x16a0, 0x16ea, 0x16ee, 0x16f8));
    }

    private static void populateSC_SAMR() {
        SET_ENCODINGS.put("sc=Samr", CodePointSet.createNoDedup(0x0800, 0x082d, 0x0830, 0x083e));
    }

    private static void populateSC_SARB() {
        SET_ENCODINGS.put("sc=Sarb", CodePointSet.createNoDedup(0x10a60, 0x10a7f));
    }

    private static void populateSC_SAUR() {
        SET_ENCODINGS.put("sc=Saur", CodePointSet.createNoDedup(0xa880, 0xa8c5, 0xa8ce, 0xa8d9));
    }

    private static void populateSC_SGNW() {
        SET_ENCODINGS.put("sc=Sgnw", CodePointSet.createNoDedup(0x1d800, 0x1da8b, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf));
    }

    private static void populateSC_SHAW() {
        SET_ENCODINGS.put("sc=Shaw", CodePointSet.createNoDedup(0x10450, 0x1047f));
    }

    private static void populateSC_SHRD() {
        SET_ENCODINGS.put("sc=Shrd", CodePointSet.createNoDedup(0x11180, 0x111cd, 0x111d0, 0x111df));
    }

    private static void populateSC_SIDD() {
        SET_ENCODINGS.put("sc=Sidd", CodePointSet.createNoDedup(0x11580, 0x115b5, 0x115b8, 0x115dd));
    }

    private static void populateSC_SIND() {
        SET_ENCODINGS.put("sc=Sind", CodePointSet.createNoDedup(0x112b0, 0x112ea, 0x112f0, 0x112f9));
    }

    private static void populateSC_SINH() {
        SET_ENCODINGS.put("sc=Sinh", CodePointSet.createNoDedup(0x0d82, 0x0d83, 0x0d85, 0x0d96, 0x0d9a, 0x0db1, 0x0db3, 0x0dbb, 0x0dbd, 0x0dbd, 0x0dc0, 0x0dc6, 0x0dca, 0x0dca, 0x0dcf, 0x0dd4, 0x0dd6,
                        0x0dd6, 0x0dd8, 0x0ddf, 0x0de6, 0x0def, 0x0df2, 0x0df4, 0x111e1, 0x111f4));
    }

    private static void populateSC_SOGD() {
        SET_ENCODINGS.put("sc=Sogd", CodePointSet.createNoDedup(0x10f30, 0x10f59));
    }

    private static void populateSC_SOGO() {
        SET_ENCODINGS.put("sc=Sogo", CodePointSet.createNoDedup(0x10f00, 0x10f27));
    }

    private static void populateSC_SORA() {
        SET_ENCODINGS.put("sc=Sora", CodePointSet.createNoDedup(0x110d0, 0x110e8, 0x110f0, 0x110f9));
    }

    private static void populateSC_SOYO() {
        SET_ENCODINGS.put("sc=Soyo", CodePointSet.createNoDedup(0x11a50, 0x11aa2));
    }

    private static void populateSC_SUND() {
        SET_ENCODINGS.put("sc=Sund", CodePointSet.createNoDedup(0x1b80, 0x1bbf, 0x1cc0, 0x1cc7));
    }

    private static void populateSC_SYLO() {
        SET_ENCODINGS.put("sc=Sylo", CodePointSet.createNoDedup(0xa800, 0xa82b));
    }

    private static void populateSC_SYRC() {
        SET_ENCODINGS.put("sc=Syrc", CodePointSet.createNoDedup(0x0700, 0x070d, 0x070f, 0x074a, 0x074d, 0x074f, 0x0860, 0x086a));
    }

    private static void populateSC_TAGB() {
        SET_ENCODINGS.put("sc=Tagb", CodePointSet.createNoDedup(0x1760, 0x176c, 0x176e, 0x1770, 0x1772, 0x1773));
    }

    private static void populateSC_TAKR() {
        SET_ENCODINGS.put("sc=Takr", CodePointSet.createNoDedup(0x11680, 0x116b8, 0x116c0, 0x116c9));
    }

    private static void populateSC_TALE() {
        SET_ENCODINGS.put("sc=Tale", CodePointSet.createNoDedup(0x1950, 0x196d, 0x1970, 0x1974));
    }

    private static void populateSC_TALU() {
        SET_ENCODINGS.put("sc=Talu", CodePointSet.createNoDedup(0x1980, 0x19ab, 0x19b0, 0x19c9, 0x19d0, 0x19da, 0x19de, 0x19df));
    }

    private static void populateSC_TAML() {
        SET_ENCODINGS.put("sc=Taml", CodePointSet.createNoDedup(0x0b82, 0x0b83, 0x0b85, 0x0b8a, 0x0b8e, 0x0b90, 0x0b92, 0x0b95, 0x0b99, 0x0b9a, 0x0b9c, 0x0b9c, 0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0ba8,
                        0x0baa, 0x0bae, 0x0bb9, 0x0bbe, 0x0bc2, 0x0bc6, 0x0bc8, 0x0bca, 0x0bcd, 0x0bd0, 0x0bd0, 0x0bd7, 0x0bd7, 0x0be6, 0x0bfa, 0x11fc0, 0x11ff1, 0x11fff, 0x11fff));
    }

    private static void populateSC_TANG() {
        SET_ENCODINGS.put("sc=Tang", CodePointSet.createNoDedup(0x16fe0, 0x16fe0, 0x17000, 0x187f7, 0x18800, 0x18af2));
    }

    private static void populateSC_TAVT() {
        SET_ENCODINGS.put("sc=Tavt", CodePointSet.createNoDedup(0xaa80, 0xaac2, 0xaadb, 0xaadf));
    }

    private static void populateSC_TELU() {
        SET_ENCODINGS.put("sc=Telu", CodePointSet.createNoDedup(0x0c00, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, 0x0c3d, 0x0c44, 0x0c46, 0x0c48, 0x0c4a, 0x0c4d, 0x0c55, 0x0c56, 0x0c58,
                        0x0c5a, 0x0c60, 0x0c63, 0x0c66, 0x0c6f, 0x0c77, 0x0c7f));
    }

    private static void populateSC_TFNG() {
        SET_ENCODINGS.put("sc=Tfng", CodePointSet.createNoDedup(0x2d30, 0x2d67, 0x2d6f, 0x2d70, 0x2d7f, 0x2d7f));
    }

    private static void populateSC_TGLG() {
        SET_ENCODINGS.put("sc=Tglg", CodePointSet.createNoDedup(0x1700, 0x170c, 0x170e, 0x1714));
    }

    private static void populateSC_THAA() {
        SET_ENCODINGS.put("sc=Thaa", CodePointSet.createNoDedup(0x0780, 0x07b1));
    }

    private static void populateSC_THAI() {
        SET_ENCODINGS.put("sc=Thai", CodePointSet.createNoDedup(0x0e01, 0x0e3a, 0x0e40, 0x0e5b));
    }

    private static void populateSC_TIBT() {
        SET_ENCODINGS.put("sc=Tibt", CodePointSet.createNoDedup(0x0f00, 0x0f47, 0x0f49, 0x0f6c, 0x0f71, 0x0f97, 0x0f99, 0x0fbc, 0x0fbe, 0x0fcc, 0x0fce, 0x0fd4, 0x0fd9, 0x0fda));
    }

    private static void populateSC_TIRH() {
        SET_ENCODINGS.put("sc=Tirh", CodePointSet.createNoDedup(0x11480, 0x114c7, 0x114d0, 0x114d9));
    }

    private static void populateSC_UGAR() {
        SET_ENCODINGS.put("sc=Ugar", CodePointSet.createNoDedup(0x10380, 0x1039d, 0x1039f, 0x1039f));
    }

    private static void populateSC_VAII() {
        SET_ENCODINGS.put("sc=Vaii", CodePointSet.createNoDedup(0xa500, 0xa62b));
    }

    private static void populateSC_WARA() {
        SET_ENCODINGS.put("sc=Wara", CodePointSet.createNoDedup(0x118a0, 0x118f2, 0x118ff, 0x118ff));
    }

    private static void populateSC_WCHO() {
        SET_ENCODINGS.put("sc=Wcho", CodePointSet.createNoDedup(0x1e2c0, 0x1e2f9, 0x1e2ff, 0x1e2ff));
    }

    private static void populateSC_XPEO() {
        SET_ENCODINGS.put("sc=Xpeo", CodePointSet.createNoDedup(0x103a0, 0x103c3, 0x103c8, 0x103d5));
    }

    private static void populateSC_XSUX() {
        SET_ENCODINGS.put("sc=Xsux", CodePointSet.createNoDedup(0x12000, 0x12399, 0x12400, 0x1246e, 0x12470, 0x12474, 0x12480, 0x12543));
    }

    private static void populateSC_YIII() {
        SET_ENCODINGS.put("sc=Yiii", CodePointSet.createNoDedup(0xa000, 0xa48c, 0xa490, 0xa4c6));
    }

    private static void populateSC_ZANB() {
        SET_ENCODINGS.put("sc=Zanb", CodePointSet.createNoDedup(0x11a00, 0x11a47));
    }

    private static void populateSC_ZINH() {
        SET_ENCODINGS.put("sc=Zinh", CodePointSet.createNoDedup(0x0300, 0x036f, 0x0485, 0x0486, 0x064b, 0x0655, 0x0670, 0x0670, 0x0951, 0x0954, 0x1ab0, 0x1abe, 0x1cd0, 0x1cd2, 0x1cd4, 0x1ce0, 0x1ce2,
                        0x1ce8, 0x1ced, 0x1ced, 0x1cf4, 0x1cf4, 0x1cf8, 0x1cf9, 0x1dc0, 0x1df9, 0x1dfb, 0x1dff, 0x200c, 0x200d, 0x20d0, 0x20f0, 0x302a, 0x302d, 0x3099, 0x309a, 0xfe00, 0xfe0f, 0xfe20,
                        0xfe2d, 0x101fd, 0x101fd, 0x102e0, 0x102e0, 0x1133b, 0x1133b, 0x1d167, 0x1d169, 0x1d17b, 0x1d182, 0x1d185, 0x1d18b, 0x1d1aa, 0x1d1ad, 0xe0100, 0xe01ef));
    }

    private static void populateSC_ZYYY() {
        SET_ENCODINGS.put("sc=Zyyy", CodePointSet.createNoDedup(0x0000, 0x0040, 0x005b, 0x0060, 0x007b, 0x00a9, 0x00ab, 0x00b9, 0x00bb, 0x00bf, 0x00d7, 0x00d7, 0x00f7, 0x00f7, 0x02b9, 0x02df, 0x02e5,
                        0x02e9, 0x02ec, 0x02ff, 0x0374, 0x0374, 0x037e, 0x037e, 0x0385, 0x0385, 0x0387, 0x0387, 0x0589, 0x0589, 0x0605, 0x0605, 0x060c, 0x060c, 0x061b, 0x061b, 0x061f, 0x061f, 0x0640,
                        0x0640, 0x06dd, 0x06dd, 0x08e2, 0x08e2, 0x0964, 0x0965, 0x0e3f, 0x0e3f, 0x0fd5, 0x0fd8, 0x10fb, 0x10fb, 0x16eb, 0x16ed, 0x1735, 0x1736, 0x1802, 0x1803, 0x1805, 0x1805, 0x1cd3,
                        0x1cd3, 0x1ce1, 0x1ce1, 0x1ce9, 0x1cec, 0x1cee, 0x1cf3, 0x1cf5, 0x1cf7, 0x1cfa, 0x1cfa, 0x2000, 0x200b, 0x200e, 0x2064, 0x2066, 0x2070, 0x2074, 0x207e, 0x2080, 0x208e, 0x20a0,
                        0x20bf, 0x2100, 0x2125, 0x2127, 0x2129, 0x212c, 0x2131, 0x2133, 0x214d, 0x214f, 0x215f, 0x2189, 0x218b, 0x2190, 0x2426, 0x2440, 0x244a, 0x2460, 0x27ff, 0x2900, 0x2b73, 0x2b76,
                        0x2b95, 0x2b98, 0x2bff, 0x2e00, 0x2e4f, 0x2ff0, 0x2ffb, 0x3000, 0x3004, 0x3006, 0x3006, 0x3008, 0x3020, 0x3030, 0x3037, 0x303c, 0x303f, 0x309b, 0x309c, 0x30a0, 0x30a0, 0x30fb,
                        0x30fc, 0x3190, 0x319f, 0x31c0, 0x31e3, 0x3220, 0x325f, 0x327f, 0x32cf, 0x32ff, 0x32ff, 0x3358, 0x33ff, 0x4dc0, 0x4dff, 0xa700, 0xa721, 0xa788, 0xa78a, 0xa830, 0xa839, 0xa92e,
                        0xa92e, 0xa9cf, 0xa9cf, 0xab5b, 0xab5b, 0xfd3e, 0xfd3f, 0xfe10, 0xfe19, 0xfe30, 0xfe52, 0xfe54, 0xfe66, 0xfe68, 0xfe6b, 0xfeff, 0xfeff, 0xff01, 0xff20, 0xff3b, 0xff40, 0xff5b,
                        0xff65, 0xff70, 0xff70, 0xff9e, 0xff9f, 0xffe0, 0xffe6, 0xffe8, 0xffee, 0xfff9, 0xfffd, 0x10100, 0x10102, 0x10107, 0x10133, 0x10137, 0x1013f, 0x10190, 0x1019b, 0x101d0,
                        0x101fc, 0x102e1, 0x102fb, 0x16fe2, 0x16fe3, 0x1bca0, 0x1bca3, 0x1d000, 0x1d0f5, 0x1d100, 0x1d126, 0x1d129, 0x1d166, 0x1d16a, 0x1d17a, 0x1d183, 0x1d184, 0x1d18c, 0x1d1a9,
                        0x1d1ae, 0x1d1e8, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4a9,
                        0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c3, 0x1d4c5, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c, 0x1d51e, 0x1d539, 0x1d53b, 0x1d53e,
                        0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d552, 0x1d6a5, 0x1d6a8, 0x1d7cb, 0x1d7ce, 0x1d7ff, 0x1ec71, 0x1ecb4, 0x1ed01, 0x1ed3d, 0x1f000, 0x1f02b, 0x1f030,
                        0x1f093, 0x1f0a0, 0x1f0ae, 0x1f0b1, 0x1f0bf, 0x1f0c1, 0x1f0cf, 0x1f0d1, 0x1f0f5, 0x1f100, 0x1f10c, 0x1f110, 0x1f16c, 0x1f170, 0x1f1ac, 0x1f1e6, 0x1f1ff, 0x1f201, 0x1f202,
                        0x1f210, 0x1f23b, 0x1f240, 0x1f248, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d5, 0x1f6e0, 0x1f6ec, 0x1f6f0, 0x1f6fa, 0x1f700, 0x1f773, 0x1f780, 0x1f7d8, 0x1f7e0,
                        0x1f7eb, 0x1f800, 0x1f80b, 0x1f810, 0x1f847, 0x1f850, 0x1f859, 0x1f860, 0x1f887, 0x1f890, 0x1f8ad, 0x1f900, 0x1f90b, 0x1f90d, 0x1f971, 0x1f973, 0x1f976, 0x1f97a, 0x1f9a2,
                        0x1f9a5, 0x1f9aa, 0x1f9ae, 0x1f9ca, 0x1f9cd, 0x1fa53, 0x1fa60, 0x1fa6d, 0x1fa70, 0x1fa73, 0x1fa78, 0x1fa7a, 0x1fa80, 0x1fa82, 0x1fa90, 0x1fa95, 0xe0001, 0xe0001, 0xe0020,
                        0xe007f));
    }

    private static void populateSC_ZZZZ() {
        SET_ENCODINGS.put("sc=Zzzz", CodePointSet.createNoDedup(0x0378, 0x0379, 0x0380, 0x0383, 0x038b, 0x038b, 0x038d, 0x038d, 0x03a2, 0x03a2, 0x0530, 0x0530, 0x0557, 0x0558, 0x058b, 0x058c, 0x0590,
                        0x0590, 0x05c8, 0x05cf, 0x05eb, 0x05ee, 0x05f5, 0x05ff, 0x061d, 0x061d, 0x070e, 0x070e, 0x074b, 0x074c, 0x07b2, 0x07bf, 0x07fb, 0x07fc, 0x082e, 0x082f, 0x083f, 0x083f, 0x085c,
                        0x085d, 0x085f, 0x085f, 0x086b, 0x089f, 0x08b5, 0x08b5, 0x08be, 0x08d2, 0x0984, 0x0984, 0x098d, 0x098e, 0x0991, 0x0992, 0x09a9, 0x09a9, 0x09b1, 0x09b1, 0x09b3, 0x09b5, 0x09ba,
                        0x09bb, 0x09c5, 0x09c6, 0x09c9, 0x09ca, 0x09cf, 0x09d6, 0x09d8, 0x09db, 0x09de, 0x09de, 0x09e4, 0x09e5, 0x09ff, 0x0a00, 0x0a04, 0x0a04, 0x0a0b, 0x0a0e, 0x0a11, 0x0a12, 0x0a29,
                        0x0a29, 0x0a31, 0x0a31, 0x0a34, 0x0a34, 0x0a37, 0x0a37, 0x0a3a, 0x0a3b, 0x0a3d, 0x0a3d, 0x0a43, 0x0a46, 0x0a49, 0x0a4a, 0x0a4e, 0x0a50, 0x0a52, 0x0a58, 0x0a5d, 0x0a5d, 0x0a5f,
                        0x0a65, 0x0a77, 0x0a80, 0x0a84, 0x0a84, 0x0a8e, 0x0a8e, 0x0a92, 0x0a92, 0x0aa9, 0x0aa9, 0x0ab1, 0x0ab1, 0x0ab4, 0x0ab4, 0x0aba, 0x0abb, 0x0ac6, 0x0ac6, 0x0aca, 0x0aca, 0x0ace,
                        0x0acf, 0x0ad1, 0x0adf, 0x0ae4, 0x0ae5, 0x0af2, 0x0af8, 0x0b00, 0x0b00, 0x0b04, 0x0b04, 0x0b0d, 0x0b0e, 0x0b11, 0x0b12, 0x0b29, 0x0b29, 0x0b31, 0x0b31, 0x0b34, 0x0b34, 0x0b3a,
                        0x0b3b, 0x0b45, 0x0b46, 0x0b49, 0x0b4a, 0x0b4e, 0x0b55, 0x0b58, 0x0b5b, 0x0b5e, 0x0b5e, 0x0b64, 0x0b65, 0x0b78, 0x0b81, 0x0b84, 0x0b84, 0x0b8b, 0x0b8d, 0x0b91, 0x0b91, 0x0b96,
                        0x0b98, 0x0b9b, 0x0b9b, 0x0b9d, 0x0b9d, 0x0ba0, 0x0ba2, 0x0ba5, 0x0ba7, 0x0bab, 0x0bad, 0x0bba, 0x0bbd, 0x0bc3, 0x0bc5, 0x0bc9, 0x0bc9, 0x0bce, 0x0bcf, 0x0bd1, 0x0bd6, 0x0bd8,
                        0x0be5, 0x0bfb, 0x0bff, 0x0c0d, 0x0c0d, 0x0c11, 0x0c11, 0x0c29, 0x0c29, 0x0c3a, 0x0c3c, 0x0c45, 0x0c45, 0x0c49, 0x0c49, 0x0c4e, 0x0c54, 0x0c57, 0x0c57, 0x0c5b, 0x0c5f, 0x0c64,
                        0x0c65, 0x0c70, 0x0c76, 0x0c8d, 0x0c8d, 0x0c91, 0x0c91, 0x0ca9, 0x0ca9, 0x0cb4, 0x0cb4, 0x0cba, 0x0cbb, 0x0cc5, 0x0cc5, 0x0cc9, 0x0cc9, 0x0cce, 0x0cd4, 0x0cd7, 0x0cdd, 0x0cdf,
                        0x0cdf, 0x0ce4, 0x0ce5, 0x0cf0, 0x0cf0, 0x0cf3, 0x0cff, 0x0d04, 0x0d04, 0x0d0d, 0x0d0d, 0x0d11, 0x0d11, 0x0d45, 0x0d45, 0x0d49, 0x0d49, 0x0d50, 0x0d53, 0x0d64, 0x0d65, 0x0d80,
                        0x0d81, 0x0d84, 0x0d84, 0x0d97, 0x0d99, 0x0db2, 0x0db2, 0x0dbc, 0x0dbc, 0x0dbe, 0x0dbf, 0x0dc7, 0x0dc9, 0x0dcb, 0x0dce, 0x0dd5, 0x0dd5, 0x0dd7, 0x0dd7, 0x0de0, 0x0de5, 0x0df0,
                        0x0df1, 0x0df5, 0x0e00, 0x0e3b, 0x0e3e, 0x0e5c, 0x0e80, 0x0e83, 0x0e83, 0x0e85, 0x0e85, 0x0e8b, 0x0e8b, 0x0ea4, 0x0ea4, 0x0ea6, 0x0ea6, 0x0ebe, 0x0ebf, 0x0ec5, 0x0ec5, 0x0ec7,
                        0x0ec7, 0x0ece, 0x0ecf, 0x0eda, 0x0edb, 0x0ee0, 0x0eff, 0x0f48, 0x0f48, 0x0f6d, 0x0f70, 0x0f98, 0x0f98, 0x0fbd, 0x0fbd, 0x0fcd, 0x0fcd, 0x0fdb, 0x0fff, 0x10c6, 0x10c6, 0x10c8,
                        0x10cc, 0x10ce, 0x10cf, 0x1249, 0x1249, 0x124e, 0x124f, 0x1257, 0x1257, 0x1259, 0x1259, 0x125e, 0x125f, 0x1289, 0x1289, 0x128e, 0x128f, 0x12b1, 0x12b1, 0x12b6, 0x12b7, 0x12bf,
                        0x12bf, 0x12c1, 0x12c1, 0x12c6, 0x12c7, 0x12d7, 0x12d7, 0x1311, 0x1311, 0x1316, 0x1317, 0x135b, 0x135c, 0x137d, 0x137f, 0x139a, 0x139f, 0x13f6, 0x13f7, 0x13fe, 0x13ff, 0x169d,
                        0x169f, 0x16f9, 0x16ff, 0x170d, 0x170d, 0x1715, 0x171f, 0x1737, 0x173f, 0x1754, 0x175f, 0x176d, 0x176d, 0x1771, 0x1771, 0x1774, 0x177f, 0x17de, 0x17df, 0x17ea, 0x17ef, 0x17fa,
                        0x17ff, 0x180f, 0x180f, 0x181a, 0x181f, 0x1879, 0x187f, 0x18ab, 0x18af, 0x18f6, 0x18ff, 0x191f, 0x191f, 0x192c, 0x192f, 0x193c, 0x193f, 0x1941, 0x1943, 0x196e, 0x196f, 0x1975,
                        0x197f, 0x19ac, 0x19af, 0x19ca, 0x19cf, 0x19db, 0x19dd, 0x1a1c, 0x1a1d, 0x1a5f, 0x1a5f, 0x1a7d, 0x1a7e, 0x1a8a, 0x1a8f, 0x1a9a, 0x1a9f, 0x1aae, 0x1aaf, 0x1abf, 0x1aff, 0x1b4c,
                        0x1b4f, 0x1b7d, 0x1b7f, 0x1bf4, 0x1bfb, 0x1c38, 0x1c3a, 0x1c4a, 0x1c4c, 0x1c89, 0x1c8f, 0x1cbb, 0x1cbc, 0x1cc8, 0x1ccf, 0x1cfb, 0x1cff, 0x1dfa, 0x1dfa, 0x1f16, 0x1f17, 0x1f1e,
                        0x1f1f, 0x1f46, 0x1f47, 0x1f4e, 0x1f4f, 0x1f58, 0x1f58, 0x1f5a, 0x1f5a, 0x1f5c, 0x1f5c, 0x1f5e, 0x1f5e, 0x1f7e, 0x1f7f, 0x1fb5, 0x1fb5, 0x1fc5, 0x1fc5, 0x1fd4, 0x1fd5, 0x1fdc,
                        0x1fdc, 0x1ff0, 0x1ff1, 0x1ff5, 0x1ff5, 0x1fff, 0x1fff, 0x2065, 0x2065, 0x2072, 0x2073, 0x208f, 0x208f, 0x209d, 0x209f, 0x20c0, 0x20cf, 0x20f1, 0x20ff, 0x218c, 0x218f, 0x2427,
                        0x243f, 0x244b, 0x245f, 0x2b74, 0x2b75, 0x2b96, 0x2b97, 0x2c2f, 0x2c2f, 0x2c5f, 0x2c5f, 0x2cf4, 0x2cf8, 0x2d26, 0x2d26, 0x2d28, 0x2d2c, 0x2d2e, 0x2d2f, 0x2d68, 0x2d6e, 0x2d71,
                        0x2d7e, 0x2d97, 0x2d9f, 0x2da7, 0x2da7, 0x2daf, 0x2daf, 0x2db7, 0x2db7, 0x2dbf, 0x2dbf, 0x2dc7, 0x2dc7, 0x2dcf, 0x2dcf, 0x2dd7, 0x2dd7, 0x2ddf, 0x2ddf, 0x2e50, 0x2e7f, 0x2e9a,
                        0x2e9a, 0x2ef4, 0x2eff, 0x2fd6, 0x2fef, 0x2ffc, 0x2fff, 0x3040, 0x3040, 0x3097, 0x3098, 0x3100, 0x3104, 0x3130, 0x3130, 0x318f, 0x318f, 0x31bb, 0x31bf, 0x31e4, 0x31ef, 0x321f,
                        0x321f, 0x4db6, 0x4dbf, 0x9ff0, 0x9fff, 0xa48d, 0xa48f, 0xa4c7, 0xa4cf, 0xa62c, 0xa63f, 0xa6f8, 0xa6ff, 0xa7c0, 0xa7c1, 0xa7c7, 0xa7f6, 0xa82c, 0xa82f, 0xa83a, 0xa83f, 0xa878,
                        0xa87f, 0xa8c6, 0xa8cd, 0xa8da, 0xa8df, 0xa954, 0xa95e, 0xa97d, 0xa97f, 0xa9ce, 0xa9ce, 0xa9da, 0xa9dd, 0xa9ff, 0xa9ff, 0xaa37, 0xaa3f, 0xaa4e, 0xaa4f, 0xaa5a, 0xaa5b, 0xaac3,
                        0xaada, 0xaaf7, 0xab00, 0xab07, 0xab08, 0xab0f, 0xab10, 0xab17, 0xab1f, 0xab27, 0xab27, 0xab2f, 0xab2f, 0xab68, 0xab6f, 0xabee, 0xabef, 0xabfa, 0xabff, 0xd7a4, 0xd7af, 0xd7c7,
                        0xd7ca, 0xd7fc, 0xf8ff, 0xfa6e, 0xfa6f, 0xfada, 0xfaff, 0xfb07, 0xfb12, 0xfb18, 0xfb1c, 0xfb37, 0xfb37, 0xfb3d, 0xfb3d, 0xfb3f, 0xfb3f, 0xfb42, 0xfb42, 0xfb45, 0xfb45, 0xfbc2,
                        0xfbd2, 0xfd40, 0xfd4f, 0xfd90, 0xfd91, 0xfdc8, 0xfdef, 0xfdfe, 0xfdff, 0xfe1a, 0xfe1f, 0xfe53, 0xfe53, 0xfe67, 0xfe67, 0xfe6c, 0xfe6f, 0xfe75, 0xfe75, 0xfefd, 0xfefe, 0xff00,
                        0xff00, 0xffbf, 0xffc1, 0xffc8, 0xffc9, 0xffd0, 0xffd1, 0xffd8, 0xffd9, 0xffdd, 0xffdf, 0xffe7, 0xffe7, 0xffef, 0xfff8, 0xfffe, 0xffff, 0x1000c, 0x1000c, 0x10027, 0x10027,
                        0x1003b, 0x1003b, 0x1003e, 0x1003e, 0x1004e, 0x1004f, 0x1005e, 0x1007f, 0x100fb, 0x100ff, 0x10103, 0x10106, 0x10134, 0x10136, 0x1018f, 0x1018f, 0x1019c, 0x1019f, 0x101a1,
                        0x101cf, 0x101fe, 0x1027f, 0x1029d, 0x1029f, 0x102d1, 0x102df, 0x102fc, 0x102ff, 0x10324, 0x1032c, 0x1034b, 0x1034f, 0x1037b, 0x1037f, 0x1039e, 0x1039e, 0x103c4, 0x103c7,
                        0x103d6, 0x103ff, 0x1049e, 0x1049f, 0x104aa, 0x104af, 0x104d4, 0x104d7, 0x104fc, 0x104ff, 0x10528, 0x1052f, 0x10564, 0x1056e, 0x10570, 0x105ff, 0x10737, 0x1073f, 0x10756,
                        0x1075f, 0x10768, 0x107ff, 0x10806, 0x10807, 0x10809, 0x10809, 0x10836, 0x10836, 0x10839, 0x1083b, 0x1083d, 0x1083e, 0x10856, 0x10856, 0x1089f, 0x108a6, 0x108b0, 0x108df,
                        0x108f3, 0x108f3, 0x108f6, 0x108fa, 0x1091c, 0x1091e, 0x1093a, 0x1093e, 0x10940, 0x1097f, 0x109b8, 0x109bb, 0x109d0, 0x109d1, 0x10a04, 0x10a04, 0x10a07, 0x10a0b, 0x10a14,
                        0x10a14, 0x10a18, 0x10a18, 0x10a36, 0x10a37, 0x10a3b, 0x10a3e, 0x10a49, 0x10a4f, 0x10a59, 0x10a5f, 0x10aa0, 0x10abf, 0x10ae7, 0x10aea, 0x10af7, 0x10aff, 0x10b36, 0x10b38,
                        0x10b56, 0x10b57, 0x10b73, 0x10b77, 0x10b92, 0x10b98, 0x10b9d, 0x10ba8, 0x10bb0, 0x10bff, 0x10c49, 0x10c7f, 0x10cb3, 0x10cbf, 0x10cf3, 0x10cf9, 0x10d28, 0x10d2f, 0x10d3a,
                        0x10e5f, 0x10e7f, 0x10eff, 0x10f28, 0x10f2f, 0x10f5a, 0x10fdf, 0x10ff7, 0x10fff, 0x1104e, 0x11051, 0x11070, 0x1107e, 0x110c2, 0x110cc, 0x110ce, 0x110cf, 0x110e9, 0x110ef,
                        0x110fa, 0x110ff, 0x11135, 0x11135, 0x11147, 0x1114f, 0x11177, 0x1117f, 0x111ce, 0x111cf, 0x111e0, 0x111e0, 0x111f5, 0x111ff, 0x11212, 0x11212, 0x1123f, 0x1127f, 0x11287,
                        0x11287, 0x11289, 0x11289, 0x1128e, 0x1128e, 0x1129e, 0x1129e, 0x112aa, 0x112af, 0x112eb, 0x112ef, 0x112fa, 0x112ff, 0x11304, 0x11304, 0x1130d, 0x1130e, 0x11311, 0x11312,
                        0x11329, 0x11329, 0x11331, 0x11331, 0x11334, 0x11334, 0x1133a, 0x1133a, 0x11345, 0x11346, 0x11349, 0x1134a, 0x1134e, 0x1134f, 0x11351, 0x11356, 0x11358, 0x1135c, 0x11364,
                        0x11365, 0x1136d, 0x1136f, 0x11375, 0x113ff, 0x1145a, 0x1145a, 0x1145c, 0x1145c, 0x11460, 0x1147f, 0x114c8, 0x114cf, 0x114da, 0x1157f, 0x115b6, 0x115b7, 0x115de, 0x115ff,
                        0x11645, 0x1164f, 0x1165a, 0x1165f, 0x1166d, 0x1167f, 0x116b9, 0x116bf, 0x116ca, 0x116ff, 0x1171b, 0x1171c, 0x1172c, 0x1172f, 0x11740, 0x117ff, 0x1183c, 0x1189f, 0x118f3,
                        0x118fe, 0x11900, 0x1199f, 0x119a8, 0x119a9, 0x119d8, 0x119d9, 0x119e5, 0x119ff, 0x11a48, 0x11a4f, 0x11aa3, 0x11abf, 0x11af9, 0x11bff, 0x11c09, 0x11c09, 0x11c37, 0x11c37,
                        0x11c46, 0x11c4f, 0x11c6d, 0x11c6f, 0x11c90, 0x11c91, 0x11ca8, 0x11ca8, 0x11cb7, 0x11cff, 0x11d07, 0x11d07, 0x11d0a, 0x11d0a, 0x11d37, 0x11d39, 0x11d3b, 0x11d3b, 0x11d3e,
                        0x11d3e, 0x11d48, 0x11d4f, 0x11d5a, 0x11d5f, 0x11d66, 0x11d66, 0x11d69, 0x11d69, 0x11d8f, 0x11d8f, 0x11d92, 0x11d92, 0x11d99, 0x11d9f, 0x11daa, 0x11edf, 0x11ef9, 0x11fbf,
                        0x11ff2, 0x11ffe, 0x1239a, 0x123ff, 0x1246f, 0x1246f, 0x12475, 0x1247f, 0x12544, 0x12fff, 0x1342f, 0x1342f, 0x13439, 0x143ff, 0x14647, 0x167ff, 0x16a39, 0x16a3f, 0x16a5f,
                        0x16a5f, 0x16a6a, 0x16a6d, 0x16a70, 0x16acf, 0x16aee, 0x16aef, 0x16af6, 0x16aff, 0x16b46, 0x16b4f, 0x16b5a, 0x16b5a, 0x16b62, 0x16b62, 0x16b78, 0x16b7c, 0x16b90, 0x16e3f,
                        0x16e9b, 0x16eff, 0x16f4b, 0x16f4e, 0x16f88, 0x16f8e, 0x16fa0, 0x16fdf, 0x16fe4, 0x16fff, 0x187f8, 0x187ff, 0x18af3, 0x1afff, 0x1b11f, 0x1b14f, 0x1b153, 0x1b163, 0x1b168,
                        0x1b16f, 0x1b2fc, 0x1bbff, 0x1bc6b, 0x1bc6f, 0x1bc7d, 0x1bc7f, 0x1bc89, 0x1bc8f, 0x1bc9a, 0x1bc9b, 0x1bca4, 0x1cfff, 0x1d0f6, 0x1d0ff, 0x1d127, 0x1d128, 0x1d1e9, 0x1d1ff,
                        0x1d246, 0x1d2df, 0x1d2f4, 0x1d2ff, 0x1d357, 0x1d35f, 0x1d379, 0x1d3ff, 0x1d455, 0x1d455, 0x1d49d, 0x1d49d, 0x1d4a0, 0x1d4a1, 0x1d4a3, 0x1d4a4, 0x1d4a7, 0x1d4a8, 0x1d4ad,
                        0x1d4ad, 0x1d4ba, 0x1d4ba, 0x1d4bc, 0x1d4bc, 0x1d4c4, 0x1d4c4, 0x1d506, 0x1d506, 0x1d50b, 0x1d50c, 0x1d515, 0x1d515, 0x1d51d, 0x1d51d, 0x1d53a, 0x1d53a, 0x1d53f, 0x1d53f,
                        0x1d545, 0x1d545, 0x1d547, 0x1d549, 0x1d551, 0x1d551, 0x1d6a6, 0x1d6a7, 0x1d7cc, 0x1d7cd, 0x1da8c, 0x1da9a, 0x1daa0, 0x1daa0, 0x1dab0, 0x1dfff, 0x1e007, 0x1e007, 0x1e019,
                        0x1e01a, 0x1e022, 0x1e022, 0x1e025, 0x1e025, 0x1e02b, 0x1e0ff, 0x1e12d, 0x1e12f, 0x1e13e, 0x1e13f, 0x1e14a, 0x1e14d, 0x1e150, 0x1e2bf, 0x1e2fa, 0x1e2fe, 0x1e300, 0x1e7ff,
                        0x1e8c5, 0x1e8c6, 0x1e8d7, 0x1e8ff, 0x1e94c, 0x1e94f, 0x1e95a, 0x1e95d, 0x1e960, 0x1ec70, 0x1ecb5, 0x1ed00, 0x1ed3e, 0x1edff, 0x1ee04, 0x1ee04, 0x1ee20, 0x1ee20, 0x1ee23,
                        0x1ee23, 0x1ee25, 0x1ee26, 0x1ee28, 0x1ee28, 0x1ee33, 0x1ee33, 0x1ee38, 0x1ee38, 0x1ee3a, 0x1ee3a, 0x1ee3c, 0x1ee41, 0x1ee43, 0x1ee46, 0x1ee48, 0x1ee48, 0x1ee4a, 0x1ee4a,
                        0x1ee4c, 0x1ee4c, 0x1ee50, 0x1ee50, 0x1ee53, 0x1ee53, 0x1ee55, 0x1ee56, 0x1ee58, 0x1ee58, 0x1ee5a, 0x1ee5a, 0x1ee5c, 0x1ee5c, 0x1ee5e, 0x1ee5e, 0x1ee60, 0x1ee60, 0x1ee63,
                        0x1ee63, 0x1ee65, 0x1ee66, 0x1ee6b, 0x1ee6b, 0x1ee73, 0x1ee73, 0x1ee78, 0x1ee78, 0x1ee7d, 0x1ee7d, 0x1ee7f, 0x1ee7f, 0x1ee8a, 0x1ee8a, 0x1ee9c, 0x1eea0, 0x1eea4, 0x1eea4,
                        0x1eeaa, 0x1eeaa, 0x1eebc, 0x1eeef, 0x1eef2, 0x1efff, 0x1f02c, 0x1f02f, 0x1f094, 0x1f09f, 0x1f0af, 0x1f0b0, 0x1f0c0, 0x1f0c0, 0x1f0d0, 0x1f0d0, 0x1f0f6, 0x1f0ff, 0x1f10d,
                        0x1f10f, 0x1f16d, 0x1f16f, 0x1f1ad, 0x1f1e5, 0x1f203, 0x1f20f, 0x1f23c, 0x1f23f, 0x1f249, 0x1f24f, 0x1f252, 0x1f25f, 0x1f266, 0x1f2ff, 0x1f6d6, 0x1f6df, 0x1f6ed, 0x1f6ef,
                        0x1f6fb, 0x1f6ff, 0x1f774, 0x1f77f, 0x1f7d9, 0x1f7df, 0x1f7ec, 0x1f7ff, 0x1f80c, 0x1f80f, 0x1f848, 0x1f84f, 0x1f85a, 0x1f85f, 0x1f888, 0x1f88f, 0x1f8ae, 0x1f8ff, 0x1f90c,
                        0x1f90c, 0x1f972, 0x1f972, 0x1f977, 0x1f979, 0x1f9a3, 0x1f9a4, 0x1f9ab, 0x1f9ad, 0x1f9cb, 0x1f9cc, 0x1fa54, 0x1fa5f, 0x1fa6e, 0x1fa6f, 0x1fa74, 0x1fa77, 0x1fa7b, 0x1fa7f,
                        0x1fa83, 0x1fa8f, 0x1fa96, 0x1ffff, 0x2a6d7, 0x2a6ff, 0x2b735, 0x2b73f, 0x2b81e, 0x2b81f, 0x2cea2, 0x2ceaf, 0x2ebe1, 0x2f7ff, 0x2fa1e, 0xe0000, 0xe0002, 0xe001f, 0xe0080,
                        0xe00ff, 0xe01f0, 0x10ffff));
    }

    private static void populateSCX_ADLM() {
        SET_ENCODINGS.put("scx=Adlm", CodePointSet.createNoDedup(0x0640, 0x0640, 0x1e900, 0x1e94b, 0x1e950, 0x1e959, 0x1e95e, 0x1e95f));
    }

    private static void populateSCX_AGHB() {
        SET_ENCODINGS.put("scx=Aghb", CodePointSet.createNoDedup(0x10530, 0x10563, 0x1056f, 0x1056f));
    }

    private static void populateSCX_AHOM() {
        SET_ENCODINGS.put("scx=Ahom", CodePointSet.createNoDedup(0x11700, 0x1171a, 0x1171d, 0x1172b, 0x11730, 0x1173f));
    }

    private static void populateSCX_ARAB() {
        SET_ENCODINGS.put("scx=Arab",
                        CodePointSet.createNoDedup(0x0600, 0x0604, 0x0606, 0x061c, 0x061e, 0x06dc, 0x06de, 0x06ff, 0x0750, 0x077f, 0x08a0, 0x08b4, 0x08b6, 0x08bd, 0x08d3, 0x08e1, 0x08e3, 0x08ff,
                                        0xfb50, 0xfbc1, 0xfbd3, 0xfd3d, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0, 0xfdfd, 0xfe70, 0xfe74, 0xfe76, 0xfefc, 0x102e0, 0x102fb, 0x10e60, 0x10e7e, 0x1ee00,
                                        0x1ee03, 0x1ee05, 0x1ee1f, 0x1ee21, 0x1ee22, 0x1ee24, 0x1ee24, 0x1ee27, 0x1ee27, 0x1ee29, 0x1ee32, 0x1ee34, 0x1ee37, 0x1ee39, 0x1ee39, 0x1ee3b, 0x1ee3b,
                                        0x1ee42, 0x1ee42, 0x1ee47, 0x1ee47, 0x1ee49, 0x1ee49, 0x1ee4b, 0x1ee4b, 0x1ee4d, 0x1ee4f, 0x1ee51, 0x1ee52, 0x1ee54, 0x1ee54, 0x1ee57, 0x1ee57, 0x1ee59,
                                        0x1ee59, 0x1ee5b, 0x1ee5b, 0x1ee5d, 0x1ee5d, 0x1ee5f, 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64, 0x1ee64, 0x1ee67, 0x1ee6a, 0x1ee6c, 0x1ee72, 0x1ee74, 0x1ee77,
                                        0x1ee79, 0x1ee7c, 0x1ee7e, 0x1ee7e, 0x1ee80, 0x1ee89, 0x1ee8b, 0x1ee9b, 0x1eea1, 0x1eea3, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x1eef0, 0x1eef1));
    }

    private static void populateSCX_ARMI() {
        SET_ENCODINGS.put("scx=Armi", CodePointSet.createNoDedup(0x10840, 0x10855, 0x10857, 0x1085f));
    }

    private static void populateSCX_ARMN() {
        SET_ENCODINGS.put("scx=Armn", CodePointSet.createNoDedup(0x0531, 0x0556, 0x0559, 0x058a, 0x058d, 0x058f, 0xfb13, 0xfb17));
    }

    private static void populateSCX_AVST() {
        SET_ENCODINGS.put("scx=Avst", CodePointSet.createNoDedup(0x10b00, 0x10b35, 0x10b39, 0x10b3f));
    }

    private static void populateSCX_BALI() {
        SET_ENCODINGS.put("scx=Bali", CodePointSet.createNoDedup(0x1b00, 0x1b4b, 0x1b50, 0x1b7c));
    }

    private static void populateSCX_BAMU() {
        SET_ENCODINGS.put("scx=Bamu", CodePointSet.createNoDedup(0xa6a0, 0xa6f7, 0x16800, 0x16a38));
    }

    private static void populateSCX_BASS() {
        SET_ENCODINGS.put("scx=Bass", CodePointSet.createNoDedup(0x16ad0, 0x16aed, 0x16af0, 0x16af5));
    }

    private static void populateSCX_BATK() {
        SET_ENCODINGS.put("scx=Batk", CodePointSet.createNoDedup(0x1bc0, 0x1bf3, 0x1bfc, 0x1bff));
    }

    private static void populateSCX_BENG() {
        SET_ENCODINGS.put("scx=Beng",
                        CodePointSet.createNoDedup(0x0951, 0x0952, 0x0964, 0x0965, 0x0980, 0x0983, 0x0985, 0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, 0x09aa, 0x09b0, 0x09b2, 0x09b2, 0x09b6, 0x09b9,
                                        0x09bc, 0x09c4, 0x09c7, 0x09c8, 0x09cb, 0x09ce, 0x09d7, 0x09d7, 0x09dc, 0x09dd, 0x09df, 0x09e3, 0x09e6, 0x09fe, 0x1cd0, 0x1cd0, 0x1cd2, 0x1cd2, 0x1cd5, 0x1cd6,
                                        0x1cd8, 0x1cd8, 0x1ce1, 0x1ce1, 0x1cea, 0x1cea, 0x1ced, 0x1ced, 0x1cf2, 0x1cf2, 0x1cf5, 0x1cf7, 0xa8f1, 0xa8f1));
    }

    private static void populateSCX_BHKS() {
        SET_ENCODINGS.put("scx=Bhks", CodePointSet.createNoDedup(0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c45, 0x11c50, 0x11c6c));
    }

    private static void populateSCX_BOPO() {
        SET_ENCODINGS.put("scx=Bopo", CodePointSet.createNoDedup(0x02ea, 0x02eb, 0x3001, 0x3003, 0x3008, 0x3011, 0x3013, 0x301f, 0x302a, 0x302d, 0x3030, 0x3030, 0x3037, 0x3037, 0x30fb, 0x30fb, 0x3105,
                        0x312f, 0x31a0, 0x31ba, 0xfe45, 0xfe46, 0xff61, 0xff65));
    }

    private static void populateSCX_BRAH() {
        SET_ENCODINGS.put("scx=Brah", CodePointSet.createNoDedup(0x11000, 0x1104d, 0x11052, 0x1106f, 0x1107f, 0x1107f));
    }

    private static void populateSCX_BRAI() {
        SET_ENCODINGS.put("scx=Brai", CodePointSet.createNoDedup(0x2800, 0x28ff));
    }

    private static void populateSCX_BUGI() {
        SET_ENCODINGS.put("scx=Bugi", CodePointSet.createNoDedup(0x1a00, 0x1a1b, 0x1a1e, 0x1a1f, 0xa9cf, 0xa9cf));
    }

    private static void populateSCX_BUHD() {
        SET_ENCODINGS.put("scx=Buhd", CodePointSet.createNoDedup(0x1735, 0x1736, 0x1740, 0x1753));
    }

    private static void populateSCX_CAKM() {
        SET_ENCODINGS.put("scx=Cakm", CodePointSet.createNoDedup(0x09e6, 0x09ef, 0x1040, 0x1049, 0x11100, 0x11134, 0x11136, 0x11146));
    }

    private static void populateSCX_CANS() {
        SET_ENCODINGS.put("scx=Cans", CodePointSet.createNoDedup(0x1400, 0x167f, 0x18b0, 0x18f5));
    }

    private static void populateSCX_CARI() {
        SET_ENCODINGS.put("scx=Cari", CodePointSet.createNoDedup(0x102a0, 0x102d0));
    }

    private static void populateSCX_CHAM() {
        SET_ENCODINGS.put("scx=Cham", CodePointSet.createNoDedup(0xaa00, 0xaa36, 0xaa40, 0xaa4d, 0xaa50, 0xaa59, 0xaa5c, 0xaa5f));
    }

    private static void populateSCX_CHER() {
        SET_ENCODINGS.put("scx=Cher", CodePointSet.createNoDedup(0x13a0, 0x13f5, 0x13f8, 0x13fd, 0xab70, 0xabbf));
    }

    private static void populateSCX_COPT() {
        SET_ENCODINGS.put("scx=Copt", CodePointSet.createNoDedup(0x03e2, 0x03ef, 0x2c80, 0x2cf3, 0x2cf9, 0x2cff, 0x102e0, 0x102fb));
    }

    private static void populateSCX_CPRT() {
        SET_ENCODINGS.put("scx=Cprt", CodePointSet.createNoDedup(0x10100, 0x10102, 0x10107, 0x10133, 0x10137, 0x1013f, 0x10800, 0x10805, 0x10808, 0x10808, 0x1080a, 0x10835, 0x10837, 0x10838, 0x1083c,
                        0x1083c, 0x1083f, 0x1083f));
    }

    private static void populateSCX_CYRL() {
        SET_ENCODINGS.put("scx=Cyrl", CodePointSet.createNoDedup(0x0400, 0x052f, 0x1c80, 0x1c88, 0x1d2b, 0x1d2b, 0x1d78, 0x1d78, 0x2de0, 0x2dff, 0x2e43, 0x2e43, 0xa640, 0xa69f, 0xfe2e, 0xfe2f));
    }

    private static void populateSCX_DEVA() {
        SET_ENCODINGS.put("scx=Deva", CodePointSet.createNoDedup(0x0900, 0x0952, 0x0955, 0x097f, 0x1cd0, 0x1cf6, 0x1cf8, 0x1cf9, 0x20f0, 0x20f0, 0xa830, 0xa839, 0xa8e0, 0xa8ff));
    }

    private static void populateSCX_DOGR() {
        SET_ENCODINGS.put("scx=Dogr", CodePointSet.createNoDedup(0x0964, 0x096f, 0xa830, 0xa839, 0x11800, 0x1183b));
    }

    private static void populateSCX_DSRT() {
        SET_ENCODINGS.put("scx=Dsrt", CodePointSet.createNoDedup(0x10400, 0x1044f));
    }

    private static void populateSCX_DUPL() {
        SET_ENCODINGS.put("scx=Dupl", CodePointSet.createNoDedup(0x1bc00, 0x1bc6a, 0x1bc70, 0x1bc7c, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9c, 0x1bca3));
    }

    private static void populateSCX_EGYP() {
        SET_ENCODINGS.put("scx=Egyp", CodePointSet.createNoDedup(0x13000, 0x1342e, 0x13430, 0x13438));
    }

    private static void populateSCX_ELBA() {
        SET_ENCODINGS.put("scx=Elba", CodePointSet.createNoDedup(0x10500, 0x10527));
    }

    private static void populateSCX_ELYM() {
        SET_ENCODINGS.put("scx=Elym", CodePointSet.createNoDedup(0x10fe0, 0x10ff6));
    }

    private static void populateSCX_ETHI() {
        SET_ENCODINGS.put("scx=Ethi",
                        CodePointSet.createNoDedup(0x1200, 0x1248, 0x124a, 0x124d, 0x1250, 0x1256, 0x1258, 0x1258, 0x125a, 0x125d, 0x1260, 0x1288, 0x128a, 0x128d, 0x1290, 0x12b0, 0x12b2, 0x12b5,
                                        0x12b8, 0x12be, 0x12c0, 0x12c0, 0x12c2, 0x12c5, 0x12c8, 0x12d6, 0x12d8, 0x1310, 0x1312, 0x1315, 0x1318, 0x135a, 0x135d, 0x137c, 0x1380, 0x1399, 0x2d80, 0x2d96,
                                        0x2da0, 0x2da6, 0x2da8, 0x2dae, 0x2db0, 0x2db6, 0x2db8, 0x2dbe, 0x2dc0, 0x2dc6, 0x2dc8, 0x2dce, 0x2dd0, 0x2dd6, 0x2dd8, 0x2dde, 0xab01, 0xab06, 0xab09, 0xab0e,
                                        0xab11, 0xab16, 0xab20, 0xab26, 0xab28, 0xab2e));
    }

    private static void populateSCX_GEOR() {
        SET_ENCODINGS.put("scx=Geor", CodePointSet.createNoDedup(0x0589, 0x0589, 0x10a0, 0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x10d0, 0x10ff, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x2d00, 0x2d25, 0x2d27,
                        0x2d27, 0x2d2d, 0x2d2d));
    }

    private static void populateSCX_GLAG() {
        SET_ENCODINGS.put("scx=Glag", CodePointSet.createNoDedup(0x0484, 0x0484, 0x0487, 0x0487, 0x2c00, 0x2c2e, 0x2c30, 0x2c5e, 0x2e43, 0x2e43, 0xa66f, 0xa66f, 0x1e000, 0x1e006, 0x1e008, 0x1e018,
                        0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a));
    }

    private static void populateSCX_GONG() {
        SET_ENCODINGS.put("scx=Gong", CodePointSet.createNoDedup(0x0964, 0x0965, 0x11d60, 0x11d65, 0x11d67, 0x11d68, 0x11d6a, 0x11d8e, 0x11d90, 0x11d91, 0x11d93, 0x11d98, 0x11da0, 0x11da9));
    }

    private static void populateSCX_GONM() {
        SET_ENCODINGS.put("scx=Gonm",
                        CodePointSet.createNoDedup(0x0964, 0x0965, 0x11d00, 0x11d06, 0x11d08, 0x11d09, 0x11d0b, 0x11d36, 0x11d3a, 0x11d3a, 0x11d3c, 0x11d3d, 0x11d3f, 0x11d47, 0x11d50, 0x11d59));
    }

    private static void populateSCX_GOTH() {
        SET_ENCODINGS.put("scx=Goth", CodePointSet.createNoDedup(0x10330, 0x1034a));
    }

    private static void populateSCX_GRAN() {
        SET_ENCODINGS.put("scx=Gran",
                        CodePointSet.createNoDedup(0x0951, 0x0952, 0x0964, 0x0965, 0x0be6, 0x0bf3, 0x1cd0, 0x1cd0, 0x1cd2, 0x1cd3, 0x1cf2, 0x1cf4, 0x1cf8, 0x1cf9, 0x20f0, 0x20f0, 0x11300, 0x11303,
                                        0x11305, 0x1130c, 0x1130f, 0x11310, 0x11313, 0x11328, 0x1132a, 0x11330, 0x11332, 0x11333, 0x11335, 0x11339, 0x1133b, 0x11344, 0x11347, 0x11348, 0x1134b,
                                        0x1134d, 0x11350, 0x11350, 0x11357, 0x11357, 0x1135d, 0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, 0x11fd0, 0x11fd1, 0x11fd3, 0x11fd3));
    }

    private static void populateSCX_GREK() {
        SET_ENCODINGS.put("scx=Grek",
                        CodePointSet.createNoDedup(0x0342, 0x0342, 0x0345, 0x0345, 0x0370, 0x0373, 0x0375, 0x0377, 0x037a, 0x037d, 0x037f, 0x037f, 0x0384, 0x0384, 0x0386, 0x0386, 0x0388, 0x038a,
                                        0x038c, 0x038c, 0x038e, 0x03a1, 0x03a3, 0x03e1, 0x03f0, 0x03ff, 0x1d26, 0x1d2a, 0x1d5d, 0x1d61, 0x1d66, 0x1d6a, 0x1dbf, 0x1dc1, 0x1f00, 0x1f15, 0x1f18, 0x1f1d,
                                        0x1f20, 0x1f45, 0x1f48, 0x1f4d, 0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f7d, 0x1f80, 0x1fb4, 0x1fb6, 0x1fc4, 0x1fc6, 0x1fd3,
                                        0x1fd6, 0x1fdb, 0x1fdd, 0x1fef, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffe, 0x2126, 0x2126, 0xab65, 0xab65, 0x10140, 0x1018e, 0x101a0, 0x101a0, 0x1d200, 0x1d245));
    }

    private static void populateSCX_GUJR() {
        SET_ENCODINGS.put("scx=Gujr", CodePointSet.createNoDedup(0x0951, 0x0952, 0x0964, 0x0965, 0x0a81, 0x0a83, 0x0a85, 0x0a8d, 0x0a8f, 0x0a91, 0x0a93, 0x0aa8, 0x0aaa, 0x0ab0, 0x0ab2, 0x0ab3, 0x0ab5,
                        0x0ab9, 0x0abc, 0x0ac5, 0x0ac7, 0x0ac9, 0x0acb, 0x0acd, 0x0ad0, 0x0ad0, 0x0ae0, 0x0ae3, 0x0ae6, 0x0af1, 0x0af9, 0x0aff, 0xa830, 0xa839));
    }

    private static void populateSCX_GURU() {
        SET_ENCODINGS.put("scx=Guru", CodePointSet.createNoDedup(0x0951, 0x0952, 0x0964, 0x0965, 0x0a01, 0x0a03, 0x0a05, 0x0a0a, 0x0a0f, 0x0a10, 0x0a13, 0x0a28, 0x0a2a, 0x0a30, 0x0a32, 0x0a33, 0x0a35,
                        0x0a36, 0x0a38, 0x0a39, 0x0a3c, 0x0a3c, 0x0a3e, 0x0a42, 0x0a47, 0x0a48, 0x0a4b, 0x0a4d, 0x0a51, 0x0a51, 0x0a59, 0x0a5c, 0x0a5e, 0x0a5e, 0x0a66, 0x0a76, 0xa830, 0xa839));
    }

    private static void populateSCX_HANG() {
        SET_ENCODINGS.put("scx=Hang",
                        CodePointSet.createNoDedup(0x1100, 0x11ff, 0x3001, 0x3003, 0x3008, 0x3011, 0x3013, 0x301f, 0x302e, 0x3030, 0x3037, 0x3037, 0x30fb, 0x30fb, 0x3131, 0x318e, 0x3200, 0x321e,
                                        0x3260, 0x327e, 0xa960, 0xa97c, 0xac00, 0xd7a3, 0xd7b0, 0xd7c6, 0xd7cb, 0xd7fb, 0xfe45, 0xfe46, 0xff61, 0xff65, 0xffa0, 0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf,
                                        0xffd2, 0xffd7, 0xffda, 0xffdc));
    }

    private static void populateSCX_HANI() {
        SET_ENCODINGS.put("scx=Hani",
                        CodePointSet.createNoDedup(0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, 0x3001, 0x3003, 0x3005, 0x3011, 0x3013, 0x301f, 0x3021, 0x302d, 0x3030, 0x3030, 0x3037, 0x303f,
                                        0x30fb, 0x30fb, 0x3190, 0x319f, 0x31c0, 0x31e3, 0x3220, 0x3247, 0x3280, 0x32b0, 0x32c0, 0x32cb, 0x32ff, 0x32ff, 0x3358, 0x3370, 0x337b, 0x337f, 0x33e0, 0x33fe,
                                        0x3400, 0x4db5, 0x4e00, 0x9fef, 0xf900, 0xfa6d, 0xfa70, 0xfad9, 0xfe45, 0xfe46, 0xff61, 0xff65, 0x1d360, 0x1d371, 0x1f250, 0x1f251, 0x20000, 0x2a6d6, 0x2a700,
                                        0x2b734, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, 0x2f800, 0x2fa1d));
    }

    private static void populateSCX_HANO() {
        SET_ENCODINGS.put("scx=Hano", CodePointSet.createNoDedup(0x1720, 0x1736));
    }

    private static void populateSCX_HATR() {
        SET_ENCODINGS.put("scx=Hatr", CodePointSet.createNoDedup(0x108e0, 0x108f2, 0x108f4, 0x108f5, 0x108fb, 0x108ff));
    }

    private static void populateSCX_HEBR() {
        SET_ENCODINGS.put("scx=Hebr",
                        CodePointSet.createNoDedup(0x0591, 0x05c7, 0x05d0, 0x05ea, 0x05ef, 0x05f4, 0xfb1d, 0xfb36, 0xfb38, 0xfb3c, 0xfb3e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfb46, 0xfb4f));
    }

    private static void populateSCX_HIRA() {
        SET_ENCODINGS.put("scx=Hira", CodePointSet.createNoDedup(0x3001, 0x3003, 0x3008, 0x3011, 0x3013, 0x301f, 0x3030, 0x3035, 0x3037, 0x3037, 0x303c, 0x303d, 0x3041, 0x3096, 0x3099, 0x30a0, 0x30fb,
                        0x30fc, 0xfe45, 0xfe46, 0xff61, 0xff65, 0xff70, 0xff70, 0xff9e, 0xff9f, 0x1b001, 0x1b11e, 0x1b150, 0x1b152, 0x1f200, 0x1f200));
    }

    private static void populateSCX_HLUW() {
        SET_ENCODINGS.put("scx=Hluw", CodePointSet.createNoDedup(0x14400, 0x14646));
    }

    private static void populateSCX_HMNG() {
        SET_ENCODINGS.put("scx=Hmng", CodePointSet.createNoDedup(0x16b00, 0x16b45, 0x16b50, 0x16b59, 0x16b5b, 0x16b61, 0x16b63, 0x16b77, 0x16b7d, 0x16b8f));
    }

    private static void populateSCX_HMNP() {
        SET_ENCODINGS.put("scx=Hmnp", CodePointSet.createNoDedup(0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, 0x1e14e, 0x1e14f));
    }

    private static void populateSCX_HUNG() {
        SET_ENCODINGS.put("scx=Hung", CodePointSet.createNoDedup(0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x10cfa, 0x10cff));
    }

    private static void populateSCX_ITAL() {
        SET_ENCODINGS.put("scx=Ital", CodePointSet.createNoDedup(0x10300, 0x10323, 0x1032d, 0x1032f));
    }

    private static void populateSCX_JAVA() {
        SET_ENCODINGS.put("scx=Java", CodePointSet.createNoDedup(0xa980, 0xa9cd, 0xa9cf, 0xa9d9, 0xa9de, 0xa9df));
    }

    private static void populateSCX_KALI() {
        SET_ENCODINGS.put("scx=Kali", CodePointSet.createNoDedup(0xa900, 0xa92f));
    }

    private static void populateSCX_KANA() {
        SET_ENCODINGS.put("scx=Kana", CodePointSet.createNoDedup(0x3001, 0x3003, 0x3008, 0x3011, 0x3013, 0x301f, 0x3030, 0x3035, 0x3037, 0x3037, 0x303c, 0x303d, 0x3099, 0x309c, 0x30a0, 0x30ff, 0x31f0,
                        0x31ff, 0x32d0, 0x32fe, 0x3300, 0x3357, 0xfe45, 0xfe46, 0xff61, 0xff9f, 0x1b000, 0x1b000, 0x1b164, 0x1b167));
    }

    private static void populateSCX_KHAR() {
        SET_ENCODINGS.put("scx=Khar",
                        CodePointSet.createNoDedup(0x10a00, 0x10a03, 0x10a05, 0x10a06, 0x10a0c, 0x10a13, 0x10a15, 0x10a17, 0x10a19, 0x10a35, 0x10a38, 0x10a3a, 0x10a3f, 0x10a48, 0x10a50, 0x10a58));
    }

    private static void populateSCX_KHMR() {
        SET_ENCODINGS.put("scx=Khmr", CodePointSet.createNoDedup(0x1780, 0x17dd, 0x17e0, 0x17e9, 0x17f0, 0x17f9, 0x19e0, 0x19ff));
    }

    private static void populateSCX_KHOJ() {
        SET_ENCODINGS.put("scx=Khoj", CodePointSet.createNoDedup(0x0ae6, 0x0aef, 0xa830, 0xa839, 0x11200, 0x11211, 0x11213, 0x1123e));
    }

    private static void populateSCX_KNDA() {
        SET_ENCODINGS.put("scx=Knda",
                        CodePointSet.createNoDedup(0x0951, 0x0952, 0x0964, 0x0965, 0x0c80, 0x0c8c, 0x0c8e, 0x0c90, 0x0c92, 0x0ca8, 0x0caa, 0x0cb3, 0x0cb5, 0x0cb9, 0x0cbc, 0x0cc4, 0x0cc6, 0x0cc8,
                                        0x0cca, 0x0ccd, 0x0cd5, 0x0cd6, 0x0cde, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, 0x0cf1, 0x0cf2, 0x1cd0, 0x1cd0, 0x1cd2, 0x1cd2, 0x1cda, 0x1cda, 0x1cf2, 0x1cf2,
                                        0x1cf4, 0x1cf4, 0xa830, 0xa835));
    }

    private static void populateSCX_KTHI() {
        SET_ENCODINGS.put("scx=Kthi", CodePointSet.createNoDedup(0x0966, 0x096f, 0xa830, 0xa839, 0x11080, 0x110c1, 0x110cd, 0x110cd));
    }

    private static void populateSCX_LANA() {
        SET_ENCODINGS.put("scx=Lana", CodePointSet.createNoDedup(0x1a20, 0x1a5e, 0x1a60, 0x1a7c, 0x1a7f, 0x1a89, 0x1a90, 0x1a99, 0x1aa0, 0x1aad));
    }

    private static void populateSCX_LAOO() {
        SET_ENCODINGS.put("scx=Laoo", CodePointSet.createNoDedup(0x0e81, 0x0e82, 0x0e84, 0x0e84, 0x0e86, 0x0e8a, 0x0e8c, 0x0ea3, 0x0ea5, 0x0ea5, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, 0x0ec8,
                        0x0ecd, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf));
    }

    private static void populateSCX_LATN() {
        SET_ENCODINGS.put("scx=Latn", CodePointSet.createNoDedup(0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, 0x00ba, 0x00ba, 0x00c0, 0x00d6, 0x00d8, 0x00f6, 0x00f8, 0x02b8, 0x02e0, 0x02e4, 0x0363,
                        0x036f, 0x0485, 0x0486, 0x0951, 0x0952, 0x10fb, 0x10fb, 0x1d00, 0x1d25, 0x1d2c, 0x1d5c, 0x1d62, 0x1d65, 0x1d6b, 0x1d77, 0x1d79, 0x1dbe, 0x1e00, 0x1eff, 0x202f, 0x202f, 0x2071,
                        0x2071, 0x207f, 0x207f, 0x2090, 0x209c, 0x20f0, 0x20f0, 0x212a, 0x212b, 0x2132, 0x2132, 0x214e, 0x214e, 0x2160, 0x2188, 0x2c60, 0x2c7f, 0xa722, 0xa787, 0xa78b, 0xa7bf, 0xa7c2,
                        0xa7c6, 0xa7f7, 0xa7ff, 0xa92e, 0xa92e, 0xab30, 0xab5a, 0xab5c, 0xab64, 0xab66, 0xab67, 0xfb00, 0xfb06, 0xff21, 0xff3a, 0xff41, 0xff5a));
    }

    private static void populateSCX_LEPC() {
        SET_ENCODINGS.put("scx=Lepc", CodePointSet.createNoDedup(0x1c00, 0x1c37, 0x1c3b, 0x1c49, 0x1c4d, 0x1c4f));
    }

    private static void populateSCX_LIMB() {
        SET_ENCODINGS.put("scx=Limb", CodePointSet.createNoDedup(0x0965, 0x0965, 0x1900, 0x191e, 0x1920, 0x192b, 0x1930, 0x193b, 0x1940, 0x1940, 0x1944, 0x194f));
    }

    private static void populateSCX_LINA() {
        SET_ENCODINGS.put("scx=Lina", CodePointSet.createNoDedup(0x10107, 0x10133, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767));
    }

    private static void populateSCX_LINB() {
        SET_ENCODINGS.put("scx=Linb", CodePointSet.createNoDedup(0x10000, 0x1000b, 0x1000d, 0x10026, 0x10028, 0x1003a, 0x1003c, 0x1003d, 0x1003f, 0x1004d, 0x10050, 0x1005d, 0x10080, 0x100fa, 0x10100,
                        0x10102, 0x10107, 0x10133, 0x10137, 0x1013f));
    }

    private static void populateSCX_LISU() {
        SET_ENCODINGS.put("scx=Lisu", CodePointSet.createNoDedup(0xa4d0, 0xa4ff));
    }

    private static void populateSCX_LYCI() {
        SET_ENCODINGS.put("scx=Lyci", CodePointSet.createNoDedup(0x10280, 0x1029c));
    }

    private static void populateSCX_LYDI() {
        SET_ENCODINGS.put("scx=Lydi", CodePointSet.createNoDedup(0x10920, 0x10939, 0x1093f, 0x1093f));
    }

    private static void populateSCX_MAHJ() {
        SET_ENCODINGS.put("scx=Mahj", CodePointSet.createNoDedup(0x0964, 0x096f, 0xa830, 0xa839, 0x11150, 0x11176));
    }

    private static void populateSCX_MAKA() {
        SET_ENCODINGS.put("scx=Maka", CodePointSet.createNoDedup(0x11ee0, 0x11ef8));
    }

    private static void populateSCX_MAND() {
        SET_ENCODINGS.put("scx=Mand", CodePointSet.createNoDedup(0x0640, 0x0640, 0x0840, 0x085b, 0x085e, 0x085e));
    }

    private static void populateSCX_MANI() {
        SET_ENCODINGS.put("scx=Mani", CodePointSet.createNoDedup(0x0640, 0x0640, 0x10ac0, 0x10ae6, 0x10aeb, 0x10af6));
    }

    private static void populateSCX_MARC() {
        SET_ENCODINGS.put("scx=Marc", CodePointSet.createNoDedup(0x11c70, 0x11c8f, 0x11c92, 0x11ca7, 0x11ca9, 0x11cb6));
    }

    private static void populateSCX_MEDF() {
        SET_ENCODINGS.put("scx=Medf", CodePointSet.createNoDedup(0x16e40, 0x16e9a));
    }

    private static void populateSCX_MEND() {
        SET_ENCODINGS.put("scx=Mend", CodePointSet.createNoDedup(0x1e800, 0x1e8c4, 0x1e8c7, 0x1e8d6));
    }

    private static void populateSCX_MERC() {
        SET_ENCODINGS.put("scx=Merc", CodePointSet.createNoDedup(0x109a0, 0x109b7, 0x109bc, 0x109cf, 0x109d2, 0x109ff));
    }

    private static void populateSCX_MERO() {
        SET_ENCODINGS.put("scx=Mero", CodePointSet.createNoDedup(0x10980, 0x1099f));
    }

    private static void populateSCX_MLYM() {
        SET_ENCODINGS.put("scx=Mlym", CodePointSet.createNoDedup(0x0951, 0x0952, 0x0964, 0x0965, 0x0d00, 0x0d03, 0x0d05, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, 0x0d46, 0x0d48, 0x0d4a, 0x0d4f, 0x0d54,
                        0x0d63, 0x0d66, 0x0d7f, 0x1cda, 0x1cda, 0xa830, 0xa832));
    }

    private static void populateSCX_MODI() {
        SET_ENCODINGS.put("scx=Modi", CodePointSet.createNoDedup(0xa830, 0xa839, 0x11600, 0x11644, 0x11650, 0x11659));
    }

    private static void populateSCX_MONG() {
        SET_ENCODINGS.put("scx=Mong", CodePointSet.createNoDedup(0x1800, 0x180e, 0x1810, 0x1819, 0x1820, 0x1878, 0x1880, 0x18aa, 0x202f, 0x202f, 0x11660, 0x1166c));
    }

    private static void populateSCX_MROO() {
        SET_ENCODINGS.put("scx=Mroo", CodePointSet.createNoDedup(0x16a40, 0x16a5e, 0x16a60, 0x16a69, 0x16a6e, 0x16a6f));
    }

    private static void populateSCX_MTEI() {
        SET_ENCODINGS.put("scx=Mtei", CodePointSet.createNoDedup(0xaae0, 0xaaf6, 0xabc0, 0xabed, 0xabf0, 0xabf9));
    }

    private static void populateSCX_MULT() {
        SET_ENCODINGS.put("scx=Mult", CodePointSet.createNoDedup(0x0a66, 0x0a6f, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, 0x1128f, 0x1129d, 0x1129f, 0x112a9));
    }

    private static void populateSCX_MYMR() {
        SET_ENCODINGS.put("scx=Mymr", CodePointSet.createNoDedup(0x1000, 0x109f, 0xa92e, 0xa92e, 0xa9e0, 0xa9fe, 0xaa60, 0xaa7f));
    }

    private static void populateSCX_NAND() {
        SET_ENCODINGS.put("scx=Nand", CodePointSet.createNoDedup(0x0964, 0x0965, 0x0ce6, 0x0cef, 0x1ce9, 0x1ce9, 0x1cf2, 0x1cf2, 0x1cfa, 0x1cfa, 0xa830, 0xa835, 0x119a0, 0x119a7, 0x119aa, 0x119d7,
                        0x119da, 0x119e4));
    }

    private static void populateSCX_NARB() {
        SET_ENCODINGS.put("scx=Narb", CodePointSet.createNoDedup(0x10a80, 0x10a9f));
    }

    private static void populateSCX_NBAT() {
        SET_ENCODINGS.put("scx=Nbat", CodePointSet.createNoDedup(0x10880, 0x1089e, 0x108a7, 0x108af));
    }

    private static void populateSCX_NEWA() {
        SET_ENCODINGS.put("scx=Newa", CodePointSet.createNoDedup(0x11400, 0x11459, 0x1145b, 0x1145b, 0x1145d, 0x1145f));
    }

    private static void populateSCX_NKOO() {
        SET_ENCODINGS.put("scx=Nkoo", CodePointSet.createNoDedup(0x07c0, 0x07fa, 0x07fd, 0x07ff));
    }

    private static void populateSCX_NSHU() {
        SET_ENCODINGS.put("scx=Nshu", CodePointSet.createNoDedup(0x16fe1, 0x16fe1, 0x1b170, 0x1b2fb));
    }

    private static void populateSCX_OGAM() {
        SET_ENCODINGS.put("scx=Ogam", CodePointSet.createNoDedup(0x1680, 0x169c));
    }

    private static void populateSCX_OLCK() {
        SET_ENCODINGS.put("scx=Olck", CodePointSet.createNoDedup(0x1c50, 0x1c7f));
    }

    private static void populateSCX_ORKH() {
        SET_ENCODINGS.put("scx=Orkh", CodePointSet.createNoDedup(0x10c00, 0x10c48));
    }

    private static void populateSCX_ORYA() {
        SET_ENCODINGS.put("scx=Orya", CodePointSet.createNoDedup(0x0951, 0x0952, 0x0964, 0x0965, 0x0b01, 0x0b03, 0x0b05, 0x0b0c, 0x0b0f, 0x0b10, 0x0b13, 0x0b28, 0x0b2a, 0x0b30, 0x0b32, 0x0b33, 0x0b35,
                        0x0b39, 0x0b3c, 0x0b44, 0x0b47, 0x0b48, 0x0b4b, 0x0b4d, 0x0b56, 0x0b57, 0x0b5c, 0x0b5d, 0x0b5f, 0x0b63, 0x0b66, 0x0b77, 0x1cda, 0x1cda, 0x1cf2, 0x1cf2));
    }

    private static void populateSCX_OSGE() {
        SET_ENCODINGS.put("scx=Osge", CodePointSet.createNoDedup(0x104b0, 0x104d3, 0x104d8, 0x104fb));
    }

    private static void populateSCX_OSMA() {
        SET_ENCODINGS.put("scx=Osma", CodePointSet.createNoDedup(0x10480, 0x1049d, 0x104a0, 0x104a9));
    }

    private static void populateSCX_PALM() {
        SET_ENCODINGS.put("scx=Palm", CodePointSet.createNoDedup(0x10860, 0x1087f));
    }

    private static void populateSCX_PAUC() {
        SET_ENCODINGS.put("scx=Pauc", CodePointSet.createNoDedup(0x11ac0, 0x11af8));
    }

    private static void populateSCX_PERM() {
        SET_ENCODINGS.put("scx=Perm", CodePointSet.createNoDedup(0x0483, 0x0483, 0x10350, 0x1037a));
    }

    private static void populateSCX_PHAG() {
        SET_ENCODINGS.put("scx=Phag", CodePointSet.createNoDedup(0x1802, 0x1803, 0x1805, 0x1805, 0xa840, 0xa877));
    }

    private static void populateSCX_PHLI() {
        SET_ENCODINGS.put("scx=Phli", CodePointSet.createNoDedup(0x10b60, 0x10b72, 0x10b78, 0x10b7f));
    }

    private static void populateSCX_PHLP() {
        SET_ENCODINGS.put("scx=Phlp", CodePointSet.createNoDedup(0x0640, 0x0640, 0x10b80, 0x10b91, 0x10b99, 0x10b9c, 0x10ba9, 0x10baf));
    }

    private static void populateSCX_PHNX() {
        SET_ENCODINGS.put("scx=Phnx", CodePointSet.createNoDedup(0x10900, 0x1091b, 0x1091f, 0x1091f));
    }

    private static void populateSCX_PLRD() {
        SET_ENCODINGS.put("scx=Plrd", CodePointSet.createNoDedup(0x16f00, 0x16f4a, 0x16f4f, 0x16f87, 0x16f8f, 0x16f9f));
    }

    private static void populateSCX_PRTI() {
        SET_ENCODINGS.put("scx=Prti", CodePointSet.createNoDedup(0x10b40, 0x10b55, 0x10b58, 0x10b5f));
    }

    private static void populateSCX_RJNG() {
        SET_ENCODINGS.put("scx=Rjng", CodePointSet.createNoDedup(0xa930, 0xa953, 0xa95f, 0xa95f));
    }

    private static void populateSCX_ROHG() {
        SET_ENCODINGS.put("scx=Rohg", CodePointSet.createNoDedup(0x060c, 0x060c, 0x061b, 0x061b, 0x061f, 0x061f, 0x0640, 0x0640, 0x06d4, 0x06d4, 0x10d00, 0x10d27, 0x10d30, 0x10d39));
    }

    private static void populateSCX_RUNR() {
        SET_ENCODINGS.put("scx=Runr", CodePointSet.createNoDedup(0x16a0, 0x16ea, 0x16ee, 0x16f8));
    }

    private static void populateSCX_SAMR() {
        SET_ENCODINGS.put("scx=Samr", CodePointSet.createNoDedup(0x0800, 0x082d, 0x0830, 0x083e));
    }

    private static void populateSCX_SARB() {
        SET_ENCODINGS.put("scx=Sarb", CodePointSet.createNoDedup(0x10a60, 0x10a7f));
    }

    private static void populateSCX_SAUR() {
        SET_ENCODINGS.put("scx=Saur", CodePointSet.createNoDedup(0xa880, 0xa8c5, 0xa8ce, 0xa8d9));
    }

    private static void populateSCX_SGNW() {
        SET_ENCODINGS.put("scx=Sgnw", CodePointSet.createNoDedup(0x1d800, 0x1da8b, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf));
    }

    private static void populateSCX_SHAW() {
        SET_ENCODINGS.put("scx=Shaw", CodePointSet.createNoDedup(0x10450, 0x1047f));
    }

    private static void populateSCX_SHRD() {
        SET_ENCODINGS.put("scx=Shrd", CodePointSet.createNoDedup(0x0951, 0x0951, 0x1cd7, 0x1cd7, 0x1cd9, 0x1cd9, 0x1cdc, 0x1cdd, 0x1ce0, 0x1ce0, 0x11180, 0x111cd, 0x111d0, 0x111df));
    }

    private static void populateSCX_SIDD() {
        SET_ENCODINGS.put("scx=Sidd", CodePointSet.createNoDedup(0x11580, 0x115b5, 0x115b8, 0x115dd));
    }

    private static void populateSCX_SIND() {
        SET_ENCODINGS.put("scx=Sind", CodePointSet.createNoDedup(0x0964, 0x0965, 0xa830, 0xa839, 0x112b0, 0x112ea, 0x112f0, 0x112f9));
    }

    private static void populateSCX_SINH() {
        SET_ENCODINGS.put("scx=Sinh", CodePointSet.createNoDedup(0x0964, 0x0965, 0x0d82, 0x0d83, 0x0d85, 0x0d96, 0x0d9a, 0x0db1, 0x0db3, 0x0dbb, 0x0dbd, 0x0dbd, 0x0dc0, 0x0dc6, 0x0dca, 0x0dca, 0x0dcf,
                        0x0dd4, 0x0dd6, 0x0dd6, 0x0dd8, 0x0ddf, 0x0de6, 0x0def, 0x0df2, 0x0df4, 0x111e1, 0x111f4));
    }

    private static void populateSCX_SOGD() {
        SET_ENCODINGS.put("scx=Sogd", CodePointSet.createNoDedup(0x0640, 0x0640, 0x10f30, 0x10f59));
    }

    private static void populateSCX_SOGO() {
        SET_ENCODINGS.put("scx=Sogo", CodePointSet.createNoDedup(0x10f00, 0x10f27));
    }

    private static void populateSCX_SORA() {
        SET_ENCODINGS.put("scx=Sora", CodePointSet.createNoDedup(0x110d0, 0x110e8, 0x110f0, 0x110f9));
    }

    private static void populateSCX_SOYO() {
        SET_ENCODINGS.put("scx=Soyo", CodePointSet.createNoDedup(0x11a50, 0x11aa2));
    }

    private static void populateSCX_SUND() {
        SET_ENCODINGS.put("scx=Sund", CodePointSet.createNoDedup(0x1b80, 0x1bbf, 0x1cc0, 0x1cc7));
    }

    private static void populateSCX_SYLO() {
        SET_ENCODINGS.put("scx=Sylo", CodePointSet.createNoDedup(0x0964, 0x0965, 0x09e6, 0x09ef, 0xa800, 0xa82b));
    }

    private static void populateSCX_SYRC() {
        SET_ENCODINGS.put("scx=Syrc", CodePointSet.createNoDedup(0x060c, 0x060c, 0x061b, 0x061c, 0x061f, 0x061f, 0x0640, 0x0640, 0x064b, 0x0655, 0x0670, 0x0670, 0x0700, 0x070d, 0x070f, 0x074a, 0x074d,
                        0x074f, 0x0860, 0x086a));
    }

    private static void populateSCX_TAGB() {
        SET_ENCODINGS.put("scx=Tagb", CodePointSet.createNoDedup(0x1735, 0x1736, 0x1760, 0x176c, 0x176e, 0x1770, 0x1772, 0x1773));
    }

    private static void populateSCX_TAKR() {
        SET_ENCODINGS.put("scx=Takr", CodePointSet.createNoDedup(0x0964, 0x0965, 0xa830, 0xa839, 0x11680, 0x116b8, 0x116c0, 0x116c9));
    }

    private static void populateSCX_TALE() {
        SET_ENCODINGS.put("scx=Tale", CodePointSet.createNoDedup(0x1040, 0x1049, 0x1950, 0x196d, 0x1970, 0x1974));
    }

    private static void populateSCX_TALU() {
        SET_ENCODINGS.put("scx=Talu", CodePointSet.createNoDedup(0x1980, 0x19ab, 0x19b0, 0x19c9, 0x19d0, 0x19da, 0x19de, 0x19df));
    }

    private static void populateSCX_TAML() {
        SET_ENCODINGS.put("scx=Taml",
                        CodePointSet.createNoDedup(0x0951, 0x0952, 0x0964, 0x0965, 0x0b82, 0x0b83, 0x0b85, 0x0b8a, 0x0b8e, 0x0b90, 0x0b92, 0x0b95, 0x0b99, 0x0b9a, 0x0b9c, 0x0b9c, 0x0b9e, 0x0b9f,
                                        0x0ba3, 0x0ba4, 0x0ba8, 0x0baa, 0x0bae, 0x0bb9, 0x0bbe, 0x0bc2, 0x0bc6, 0x0bc8, 0x0bca, 0x0bcd, 0x0bd0, 0x0bd0, 0x0bd7, 0x0bd7, 0x0be6, 0x0bfa, 0x1cda, 0x1cda,
                                        0xa8f3, 0xa8f3, 0x11301, 0x11301, 0x11303, 0x11303, 0x1133b, 0x1133c, 0x11fc0, 0x11ff1, 0x11fff, 0x11fff));
    }

    private static void populateSCX_TANG() {
        SET_ENCODINGS.put("scx=Tang", CodePointSet.createNoDedup(0x16fe0, 0x16fe0, 0x17000, 0x187f7, 0x18800, 0x18af2));
    }

    private static void populateSCX_TAVT() {
        SET_ENCODINGS.put("scx=Tavt", CodePointSet.createNoDedup(0xaa80, 0xaac2, 0xaadb, 0xaadf));
    }

    private static void populateSCX_TELU() {
        SET_ENCODINGS.put("scx=Telu", CodePointSet.createNoDedup(0x0951, 0x0952, 0x0964, 0x0965, 0x0c00, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, 0x0c3d, 0x0c44, 0x0c46, 0x0c48, 0x0c4a,
                        0x0c4d, 0x0c55, 0x0c56, 0x0c58, 0x0c5a, 0x0c60, 0x0c63, 0x0c66, 0x0c6f, 0x0c77, 0x0c7f, 0x1cda, 0x1cda, 0x1cf2, 0x1cf2));
    }

    private static void populateSCX_TFNG() {
        SET_ENCODINGS.put("scx=Tfng", CodePointSet.createNoDedup(0x2d30, 0x2d67, 0x2d6f, 0x2d70, 0x2d7f, 0x2d7f));
    }

    private static void populateSCX_TGLG() {
        SET_ENCODINGS.put("scx=Tglg", CodePointSet.createNoDedup(0x1700, 0x170c, 0x170e, 0x1714, 0x1735, 0x1736));
    }

    private static void populateSCX_THAA() {
        SET_ENCODINGS.put("scx=Thaa", CodePointSet.createNoDedup(0x060c, 0x060c, 0x061b, 0x061c, 0x061f, 0x061f, 0x0660, 0x0669, 0x0780, 0x07b1, 0xfdf2, 0xfdf2, 0xfdfd, 0xfdfd));
    }

    private static void populateSCX_THAI() {
        SET_ENCODINGS.put("scx=Thai", CodePointSet.createNoDedup(0x0e01, 0x0e3a, 0x0e40, 0x0e5b));
    }

    private static void populateSCX_TIBT() {
        SET_ENCODINGS.put("scx=Tibt", CodePointSet.createNoDedup(0x0f00, 0x0f47, 0x0f49, 0x0f6c, 0x0f71, 0x0f97, 0x0f99, 0x0fbc, 0x0fbe, 0x0fcc, 0x0fce, 0x0fd4, 0x0fd9, 0x0fda));
    }

    private static void populateSCX_TIRH() {
        SET_ENCODINGS.put("scx=Tirh", CodePointSet.createNoDedup(0x0951, 0x0952, 0x0964, 0x0965, 0x1cf2, 0x1cf2, 0xa830, 0xa839, 0x11480, 0x114c7, 0x114d0, 0x114d9));
    }

    private static void populateSCX_UGAR() {
        SET_ENCODINGS.put("scx=Ugar", CodePointSet.createNoDedup(0x10380, 0x1039d, 0x1039f, 0x1039f));
    }

    private static void populateSCX_VAII() {
        SET_ENCODINGS.put("scx=Vaii", CodePointSet.createNoDedup(0xa500, 0xa62b));
    }

    private static void populateSCX_WARA() {
        SET_ENCODINGS.put("scx=Wara", CodePointSet.createNoDedup(0x118a0, 0x118f2, 0x118ff, 0x118ff));
    }

    private static void populateSCX_WCHO() {
        SET_ENCODINGS.put("scx=Wcho", CodePointSet.createNoDedup(0x1e2c0, 0x1e2f9, 0x1e2ff, 0x1e2ff));
    }

    private static void populateSCX_XPEO() {
        SET_ENCODINGS.put("scx=Xpeo", CodePointSet.createNoDedup(0x103a0, 0x103c3, 0x103c8, 0x103d5));
    }

    private static void populateSCX_XSUX() {
        SET_ENCODINGS.put("scx=Xsux", CodePointSet.createNoDedup(0x12000, 0x12399, 0x12400, 0x1246e, 0x12470, 0x12474, 0x12480, 0x12543));
    }

    private static void populateSCX_YIII() {
        SET_ENCODINGS.put("scx=Yiii", CodePointSet.createNoDedup(0x3001, 0x3002, 0x3008, 0x3011, 0x3014, 0x301b, 0x30fb, 0x30fb, 0xa000, 0xa48c, 0xa490, 0xa4c6, 0xff61, 0xff65));
    }

    private static void populateSCX_ZANB() {
        SET_ENCODINGS.put("scx=Zanb", CodePointSet.createNoDedup(0x11a00, 0x11a47));
    }

    private static void populateSCX_ZINH() {
        SET_ENCODINGS.put("scx=Zinh", CodePointSet.createNoDedup(0x0300, 0x0341, 0x0343, 0x0344, 0x0346, 0x0362, 0x0953, 0x0954, 0x1ab0, 0x1abe, 0x1dc2, 0x1df9, 0x1dfb, 0x1dff, 0x200c, 0x200d, 0x20d0,
                        0x20ef, 0xfe00, 0xfe0f, 0xfe20, 0xfe2d, 0x101fd, 0x101fd, 0x1d167, 0x1d169, 0x1d17b, 0x1d182, 0x1d185, 0x1d18b, 0x1d1aa, 0x1d1ad, 0xe0100, 0xe01ef));
    }

    private static void populateSCX_ZYYY() {
        SET_ENCODINGS.put("scx=Zyyy", CodePointSet.createNoDedup(0x0000, 0x0040, 0x005b, 0x0060, 0x007b, 0x00a9, 0x00ab, 0x00b9, 0x00bb, 0x00bf, 0x00d7, 0x00d7, 0x00f7, 0x00f7, 0x02b9, 0x02df, 0x02e5,
                        0x02e9, 0x02ec, 0x02ff, 0x0374, 0x0374, 0x037e, 0x037e, 0x0385, 0x0385, 0x0387, 0x0387, 0x0605, 0x0605, 0x06dd, 0x06dd, 0x08e2, 0x08e2, 0x0e3f, 0x0e3f, 0x0fd5, 0x0fd8, 0x16eb,
                        0x16ed, 0x2000, 0x200b, 0x200e, 0x202e, 0x2030, 0x2064, 0x2066, 0x2070, 0x2074, 0x207e, 0x2080, 0x208e, 0x20a0, 0x20bf, 0x2100, 0x2125, 0x2127, 0x2129, 0x212c, 0x2131, 0x2133,
                        0x214d, 0x214f, 0x215f, 0x2189, 0x218b, 0x2190, 0x2426, 0x2440, 0x244a, 0x2460, 0x27ff, 0x2900, 0x2b73, 0x2b76, 0x2b95, 0x2b98, 0x2bff, 0x2e00, 0x2e42, 0x2e44, 0x2e4f, 0x2ff0,
                        0x2ffb, 0x3000, 0x3000, 0x3004, 0x3004, 0x3012, 0x3012, 0x3020, 0x3020, 0x3036, 0x3036, 0x3248, 0x325f, 0x327f, 0x327f, 0x32b1, 0x32bf, 0x32cc, 0x32cf, 0x3371, 0x337a, 0x3380,
                        0x33df, 0x33ff, 0x33ff, 0x4dc0, 0x4dff, 0xa700, 0xa721, 0xa788, 0xa78a, 0xab5b, 0xab5b, 0xfd3e, 0xfd3f, 0xfe10, 0xfe19, 0xfe30, 0xfe44, 0xfe47, 0xfe52, 0xfe54, 0xfe66, 0xfe68,
                        0xfe6b, 0xfeff, 0xfeff, 0xff01, 0xff20, 0xff3b, 0xff40, 0xff5b, 0xff60, 0xffe0, 0xffe6, 0xffe8, 0xffee, 0xfff9, 0xfffd, 0x10190, 0x1019b, 0x101d0, 0x101fc, 0x16fe2, 0x16fe3,
                        0x1d000, 0x1d0f5, 0x1d100, 0x1d126, 0x1d129, 0x1d166, 0x1d16a, 0x1d17a, 0x1d183, 0x1d184, 0x1d18c, 0x1d1a9, 0x1d1ae, 0x1d1e8, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d372,
                        0x1d378, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c3,
                        0x1d4c5, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c, 0x1d51e, 0x1d539, 0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d552,
                        0x1d6a5, 0x1d6a8, 0x1d7cb, 0x1d7ce, 0x1d7ff, 0x1ec71, 0x1ecb4, 0x1ed01, 0x1ed3d, 0x1f000, 0x1f02b, 0x1f030, 0x1f093, 0x1f0a0, 0x1f0ae, 0x1f0b1, 0x1f0bf, 0x1f0c1, 0x1f0cf,
                        0x1f0d1, 0x1f0f5, 0x1f100, 0x1f10c, 0x1f110, 0x1f16c, 0x1f170, 0x1f1ac, 0x1f1e6, 0x1f1ff, 0x1f201, 0x1f202, 0x1f210, 0x1f23b, 0x1f240, 0x1f248, 0x1f260, 0x1f265, 0x1f300,
                        0x1f6d5, 0x1f6e0, 0x1f6ec, 0x1f6f0, 0x1f6fa, 0x1f700, 0x1f773, 0x1f780, 0x1f7d8, 0x1f7e0, 0x1f7eb, 0x1f800, 0x1f80b, 0x1f810, 0x1f847, 0x1f850, 0x1f859, 0x1f860, 0x1f887,
                        0x1f890, 0x1f8ad, 0x1f900, 0x1f90b, 0x1f90d, 0x1f971, 0x1f973, 0x1f976, 0x1f97a, 0x1f9a2, 0x1f9a5, 0x1f9aa, 0x1f9ae, 0x1f9ca, 0x1f9cd, 0x1fa53, 0x1fa60, 0x1fa6d, 0x1fa70,
                        0x1fa73, 0x1fa78, 0x1fa7a, 0x1fa80, 0x1fa82, 0x1fa90, 0x1fa95, 0xe0001, 0xe0001, 0xe0020, 0xe007f));
    }

    private static void populateSCX_ZZZZ() {
        SET_ENCODINGS.put("scx=Zzzz", CodePointSet.createNoDedup(0x0378, 0x0379, 0x0380, 0x0383, 0x038b, 0x038b, 0x038d, 0x038d, 0x03a2, 0x03a2, 0x0530, 0x0530, 0x0557, 0x0558, 0x058b, 0x058c, 0x0590,
                        0x0590, 0x05c8, 0x05cf, 0x05eb, 0x05ee, 0x05f5, 0x05ff, 0x061d, 0x061d, 0x070e, 0x070e, 0x074b, 0x074c, 0x07b2, 0x07bf, 0x07fb, 0x07fc, 0x082e, 0x082f, 0x083f, 0x083f, 0x085c,
                        0x085d, 0x085f, 0x085f, 0x086b, 0x089f, 0x08b5, 0x08b5, 0x08be, 0x08d2, 0x0984, 0x0984, 0x098d, 0x098e, 0x0991, 0x0992, 0x09a9, 0x09a9, 0x09b1, 0x09b1, 0x09b3, 0x09b5, 0x09ba,
                        0x09bb, 0x09c5, 0x09c6, 0x09c9, 0x09ca, 0x09cf, 0x09d6, 0x09d8, 0x09db, 0x09de, 0x09de, 0x09e4, 0x09e5, 0x09ff, 0x0a00, 0x0a04, 0x0a04, 0x0a0b, 0x0a0e, 0x0a11, 0x0a12, 0x0a29,
                        0x0a29, 0x0a31, 0x0a31, 0x0a34, 0x0a34, 0x0a37, 0x0a37, 0x0a3a, 0x0a3b, 0x0a3d, 0x0a3d, 0x0a43, 0x0a46, 0x0a49, 0x0a4a, 0x0a4e, 0x0a50, 0x0a52, 0x0a58, 0x0a5d, 0x0a5d, 0x0a5f,
                        0x0a65, 0x0a77, 0x0a80, 0x0a84, 0x0a84, 0x0a8e, 0x0a8e, 0x0a92, 0x0a92, 0x0aa9, 0x0aa9, 0x0ab1, 0x0ab1, 0x0ab4, 0x0ab4, 0x0aba, 0x0abb, 0x0ac6, 0x0ac6, 0x0aca, 0x0aca, 0x0ace,
                        0x0acf, 0x0ad1, 0x0adf, 0x0ae4, 0x0ae5, 0x0af2, 0x0af8, 0x0b00, 0x0b00, 0x0b04, 0x0b04, 0x0b0d, 0x0b0e, 0x0b11, 0x0b12, 0x0b29, 0x0b29, 0x0b31, 0x0b31, 0x0b34, 0x0b34, 0x0b3a,
                        0x0b3b, 0x0b45, 0x0b46, 0x0b49, 0x0b4a, 0x0b4e, 0x0b55, 0x0b58, 0x0b5b, 0x0b5e, 0x0b5e, 0x0b64, 0x0b65, 0x0b78, 0x0b81, 0x0b84, 0x0b84, 0x0b8b, 0x0b8d, 0x0b91, 0x0b91, 0x0b96,
                        0x0b98, 0x0b9b, 0x0b9b, 0x0b9d, 0x0b9d, 0x0ba0, 0x0ba2, 0x0ba5, 0x0ba7, 0x0bab, 0x0bad, 0x0bba, 0x0bbd, 0x0bc3, 0x0bc5, 0x0bc9, 0x0bc9, 0x0bce, 0x0bcf, 0x0bd1, 0x0bd6, 0x0bd8,
                        0x0be5, 0x0bfb, 0x0bff, 0x0c0d, 0x0c0d, 0x0c11, 0x0c11, 0x0c29, 0x0c29, 0x0c3a, 0x0c3c, 0x0c45, 0x0c45, 0x0c49, 0x0c49, 0x0c4e, 0x0c54, 0x0c57, 0x0c57, 0x0c5b, 0x0c5f, 0x0c64,
                        0x0c65, 0x0c70, 0x0c76, 0x0c8d, 0x0c8d, 0x0c91, 0x0c91, 0x0ca9, 0x0ca9, 0x0cb4, 0x0cb4, 0x0cba, 0x0cbb, 0x0cc5, 0x0cc5, 0x0cc9, 0x0cc9, 0x0cce, 0x0cd4, 0x0cd7, 0x0cdd, 0x0cdf,
                        0x0cdf, 0x0ce4, 0x0ce5, 0x0cf0, 0x0cf0, 0x0cf3, 0x0cff, 0x0d04, 0x0d04, 0x0d0d, 0x0d0d, 0x0d11, 0x0d11, 0x0d45, 0x0d45, 0x0d49, 0x0d49, 0x0d50, 0x0d53, 0x0d64, 0x0d65, 0x0d80,
                        0x0d81, 0x0d84, 0x0d84, 0x0d97, 0x0d99, 0x0db2, 0x0db2, 0x0dbc, 0x0dbc, 0x0dbe, 0x0dbf, 0x0dc7, 0x0dc9, 0x0dcb, 0x0dce, 0x0dd5, 0x0dd5, 0x0dd7, 0x0dd7, 0x0de0, 0x0de5, 0x0df0,
                        0x0df1, 0x0df5, 0x0e00, 0x0e3b, 0x0e3e, 0x0e5c, 0x0e80, 0x0e83, 0x0e83, 0x0e85, 0x0e85, 0x0e8b, 0x0e8b, 0x0ea4, 0x0ea4, 0x0ea6, 0x0ea6, 0x0ebe, 0x0ebf, 0x0ec5, 0x0ec5, 0x0ec7,
                        0x0ec7, 0x0ece, 0x0ecf, 0x0eda, 0x0edb, 0x0ee0, 0x0eff, 0x0f48, 0x0f48, 0x0f6d, 0x0f70, 0x0f98, 0x0f98, 0x0fbd, 0x0fbd, 0x0fcd, 0x0fcd, 0x0fdb, 0x0fff, 0x10c6, 0x10c6, 0x10c8,
                        0x10cc, 0x10ce, 0x10cf, 0x1249, 0x1249, 0x124e, 0x124f, 0x1257, 0x1257, 0x1259, 0x1259, 0x125e, 0x125f, 0x1289, 0x1289, 0x128e, 0x128f, 0x12b1, 0x12b1, 0x12b6, 0x12b7, 0x12bf,
                        0x12bf, 0x12c1, 0x12c1, 0x12c6, 0x12c7, 0x12d7, 0x12d7, 0x1311, 0x1311, 0x1316, 0x1317, 0x135b, 0x135c, 0x137d, 0x137f, 0x139a, 0x139f, 0x13f6, 0x13f7, 0x13fe, 0x13ff, 0x169d,
                        0x169f, 0x16f9, 0x16ff, 0x170d, 0x170d, 0x1715, 0x171f, 0x1737, 0x173f, 0x1754, 0x175f, 0x176d, 0x176d, 0x1771, 0x1771, 0x1774, 0x177f, 0x17de, 0x17df, 0x17ea, 0x17ef, 0x17fa,
                        0x17ff, 0x180f, 0x180f, 0x181a, 0x181f, 0x1879, 0x187f, 0x18ab, 0x18af, 0x18f6, 0x18ff, 0x191f, 0x191f, 0x192c, 0x192f, 0x193c, 0x193f, 0x1941, 0x1943, 0x196e, 0x196f, 0x1975,
                        0x197f, 0x19ac, 0x19af, 0x19ca, 0x19cf, 0x19db, 0x19dd, 0x1a1c, 0x1a1d, 0x1a5f, 0x1a5f, 0x1a7d, 0x1a7e, 0x1a8a, 0x1a8f, 0x1a9a, 0x1a9f, 0x1aae, 0x1aaf, 0x1abf, 0x1aff, 0x1b4c,
                        0x1b4f, 0x1b7d, 0x1b7f, 0x1bf4, 0x1bfb, 0x1c38, 0x1c3a, 0x1c4a, 0x1c4c, 0x1c89, 0x1c8f, 0x1cbb, 0x1cbc, 0x1cc8, 0x1ccf, 0x1cfb, 0x1cff, 0x1dfa, 0x1dfa, 0x1f16, 0x1f17, 0x1f1e,
                        0x1f1f, 0x1f46, 0x1f47, 0x1f4e, 0x1f4f, 0x1f58, 0x1f58, 0x1f5a, 0x1f5a, 0x1f5c, 0x1f5c, 0x1f5e, 0x1f5e, 0x1f7e, 0x1f7f, 0x1fb5, 0x1fb5, 0x1fc5, 0x1fc5, 0x1fd4, 0x1fd5, 0x1fdc,
                        0x1fdc, 0x1ff0, 0x1ff1, 0x1ff5, 0x1ff5, 0x1fff, 0x1fff, 0x2065, 0x2065, 0x2072, 0x2073, 0x208f, 0x208f, 0x209d, 0x209f, 0x20c0, 0x20cf, 0x20f1, 0x20ff, 0x218c, 0x218f, 0x2427,
                        0x243f, 0x244b, 0x245f, 0x2b74, 0x2b75, 0x2b96, 0x2b97, 0x2c2f, 0x2c2f, 0x2c5f, 0x2c5f, 0x2cf4, 0x2cf8, 0x2d26, 0x2d26, 0x2d28, 0x2d2c, 0x2d2e, 0x2d2f, 0x2d68, 0x2d6e, 0x2d71,
                        0x2d7e, 0x2d97, 0x2d9f, 0x2da7, 0x2da7, 0x2daf, 0x2daf, 0x2db7, 0x2db7, 0x2dbf, 0x2dbf, 0x2dc7, 0x2dc7, 0x2dcf, 0x2dcf, 0x2dd7, 0x2dd7, 0x2ddf, 0x2ddf, 0x2e50, 0x2e7f, 0x2e9a,
                        0x2e9a, 0x2ef4, 0x2eff, 0x2fd6, 0x2fef, 0x2ffc, 0x2fff, 0x3040, 0x3040, 0x3097, 0x3098, 0x3100, 0x3104, 0x3130, 0x3130, 0x318f, 0x318f, 0x31bb, 0x31bf, 0x31e4, 0x31ef, 0x321f,
                        0x321f, 0x4db6, 0x4dbf, 0x9ff0, 0x9fff, 0xa48d, 0xa48f, 0xa4c7, 0xa4cf, 0xa62c, 0xa63f, 0xa6f8, 0xa6ff, 0xa7c0, 0xa7c1, 0xa7c7, 0xa7f6, 0xa82c, 0xa82f, 0xa83a, 0xa83f, 0xa878,
                        0xa87f, 0xa8c6, 0xa8cd, 0xa8da, 0xa8df, 0xa954, 0xa95e, 0xa97d, 0xa97f, 0xa9ce, 0xa9ce, 0xa9da, 0xa9dd, 0xa9ff, 0xa9ff, 0xaa37, 0xaa3f, 0xaa4e, 0xaa4f, 0xaa5a, 0xaa5b, 0xaac3,
                        0xaada, 0xaaf7, 0xab00, 0xab07, 0xab08, 0xab0f, 0xab10, 0xab17, 0xab1f, 0xab27, 0xab27, 0xab2f, 0xab2f, 0xab68, 0xab6f, 0xabee, 0xabef, 0xabfa, 0xabff, 0xd7a4, 0xd7af, 0xd7c7,
                        0xd7ca, 0xd7fc, 0xf8ff, 0xfa6e, 0xfa6f, 0xfada, 0xfaff, 0xfb07, 0xfb12, 0xfb18, 0xfb1c, 0xfb37, 0xfb37, 0xfb3d, 0xfb3d, 0xfb3f, 0xfb3f, 0xfb42, 0xfb42, 0xfb45, 0xfb45, 0xfbc2,
                        0xfbd2, 0xfd40, 0xfd4f, 0xfd90, 0xfd91, 0xfdc8, 0xfdef, 0xfdfe, 0xfdff, 0xfe1a, 0xfe1f, 0xfe53, 0xfe53, 0xfe67, 0xfe67, 0xfe6c, 0xfe6f, 0xfe75, 0xfe75, 0xfefd, 0xfefe, 0xff00,
                        0xff00, 0xffbf, 0xffc1, 0xffc8, 0xffc9, 0xffd0, 0xffd1, 0xffd8, 0xffd9, 0xffdd, 0xffdf, 0xffe7, 0xffe7, 0xffef, 0xfff8, 0xfffe, 0xffff, 0x1000c, 0x1000c, 0x10027, 0x10027,
                        0x1003b, 0x1003b, 0x1003e, 0x1003e, 0x1004e, 0x1004f, 0x1005e, 0x1007f, 0x100fb, 0x100ff, 0x10103, 0x10106, 0x10134, 0x10136, 0x1018f, 0x1018f, 0x1019c, 0x1019f, 0x101a1,
                        0x101cf, 0x101fe, 0x1027f, 0x1029d, 0x1029f, 0x102d1, 0x102df, 0x102fc, 0x102ff, 0x10324, 0x1032c, 0x1034b, 0x1034f, 0x1037b, 0x1037f, 0x1039e, 0x1039e, 0x103c4, 0x103c7,
                        0x103d6, 0x103ff, 0x1049e, 0x1049f, 0x104aa, 0x104af, 0x104d4, 0x104d7, 0x104fc, 0x104ff, 0x10528, 0x1052f, 0x10564, 0x1056e, 0x10570, 0x105ff, 0x10737, 0x1073f, 0x10756,
                        0x1075f, 0x10768, 0x107ff, 0x10806, 0x10807, 0x10809, 0x10809, 0x10836, 0x10836, 0x10839, 0x1083b, 0x1083d, 0x1083e, 0x10856, 0x10856, 0x1089f, 0x108a6, 0x108b0, 0x108df,
                        0x108f3, 0x108f3, 0x108f6, 0x108fa, 0x1091c, 0x1091e, 0x1093a, 0x1093e, 0x10940, 0x1097f, 0x109b8, 0x109bb, 0x109d0, 0x109d1, 0x10a04, 0x10a04, 0x10a07, 0x10a0b, 0x10a14,
                        0x10a14, 0x10a18, 0x10a18, 0x10a36, 0x10a37, 0x10a3b, 0x10a3e, 0x10a49, 0x10a4f, 0x10a59, 0x10a5f, 0x10aa0, 0x10abf, 0x10ae7, 0x10aea, 0x10af7, 0x10aff, 0x10b36, 0x10b38,
                        0x10b56, 0x10b57, 0x10b73, 0x10b77, 0x10b92, 0x10b98, 0x10b9d, 0x10ba8, 0x10bb0, 0x10bff, 0x10c49, 0x10c7f, 0x10cb3, 0x10cbf, 0x10cf3, 0x10cf9, 0x10d28, 0x10d2f, 0x10d3a,
                        0x10e5f, 0x10e7f, 0x10eff, 0x10f28, 0x10f2f, 0x10f5a, 0x10fdf, 0x10ff7, 0x10fff, 0x1104e, 0x11051, 0x11070, 0x1107e, 0x110c2, 0x110cc, 0x110ce, 0x110cf, 0x110e9, 0x110ef,
                        0x110fa, 0x110ff, 0x11135, 0x11135, 0x11147, 0x1114f, 0x11177, 0x1117f, 0x111ce, 0x111cf, 0x111e0, 0x111e0, 0x111f5, 0x111ff, 0x11212, 0x11212, 0x1123f, 0x1127f, 0x11287,
                        0x11287, 0x11289, 0x11289, 0x1128e, 0x1128e, 0x1129e, 0x1129e, 0x112aa, 0x112af, 0x112eb, 0x112ef, 0x112fa, 0x112ff, 0x11304, 0x11304, 0x1130d, 0x1130e, 0x11311, 0x11312,
                        0x11329, 0x11329, 0x11331, 0x11331, 0x11334, 0x11334, 0x1133a, 0x1133a, 0x11345, 0x11346, 0x11349, 0x1134a, 0x1134e, 0x1134f, 0x11351, 0x11356, 0x11358, 0x1135c, 0x11364,
                        0x11365, 0x1136d, 0x1136f, 0x11375, 0x113ff, 0x1145a, 0x1145a, 0x1145c, 0x1145c, 0x11460, 0x1147f, 0x114c8, 0x114cf, 0x114da, 0x1157f, 0x115b6, 0x115b7, 0x115de, 0x115ff,
                        0x11645, 0x1164f, 0x1165a, 0x1165f, 0x1166d, 0x1167f, 0x116b9, 0x116bf, 0x116ca, 0x116ff, 0x1171b, 0x1171c, 0x1172c, 0x1172f, 0x11740, 0x117ff, 0x1183c, 0x1189f, 0x118f3,
                        0x118fe, 0x11900, 0x1199f, 0x119a8, 0x119a9, 0x119d8, 0x119d9, 0x119e5, 0x119ff, 0x11a48, 0x11a4f, 0x11aa3, 0x11abf, 0x11af9, 0x11bff, 0x11c09, 0x11c09, 0x11c37, 0x11c37,
                        0x11c46, 0x11c4f, 0x11c6d, 0x11c6f, 0x11c90, 0x11c91, 0x11ca8, 0x11ca8, 0x11cb7, 0x11cff, 0x11d07, 0x11d07, 0x11d0a, 0x11d0a, 0x11d37, 0x11d39, 0x11d3b, 0x11d3b, 0x11d3e,
                        0x11d3e, 0x11d48, 0x11d4f, 0x11d5a, 0x11d5f, 0x11d66, 0x11d66, 0x11d69, 0x11d69, 0x11d8f, 0x11d8f, 0x11d92, 0x11d92, 0x11d99, 0x11d9f, 0x11daa, 0x11edf, 0x11ef9, 0x11fbf,
                        0x11ff2, 0x11ffe, 0x1239a, 0x123ff, 0x1246f, 0x1246f, 0x12475, 0x1247f, 0x12544, 0x12fff, 0x1342f, 0x1342f, 0x13439, 0x143ff, 0x14647, 0x167ff, 0x16a39, 0x16a3f, 0x16a5f,
                        0x16a5f, 0x16a6a, 0x16a6d, 0x16a70, 0x16acf, 0x16aee, 0x16aef, 0x16af6, 0x16aff, 0x16b46, 0x16b4f, 0x16b5a, 0x16b5a, 0x16b62, 0x16b62, 0x16b78, 0x16b7c, 0x16b90, 0x16e3f,
                        0x16e9b, 0x16eff, 0x16f4b, 0x16f4e, 0x16f88, 0x16f8e, 0x16fa0, 0x16fdf, 0x16fe4, 0x16fff, 0x187f8, 0x187ff, 0x18af3, 0x1afff, 0x1b11f, 0x1b14f, 0x1b153, 0x1b163, 0x1b168,
                        0x1b16f, 0x1b2fc, 0x1bbff, 0x1bc6b, 0x1bc6f, 0x1bc7d, 0x1bc7f, 0x1bc89, 0x1bc8f, 0x1bc9a, 0x1bc9b, 0x1bca4, 0x1cfff, 0x1d0f6, 0x1d0ff, 0x1d127, 0x1d128, 0x1d1e9, 0x1d1ff,
                        0x1d246, 0x1d2df, 0x1d2f4, 0x1d2ff, 0x1d357, 0x1d35f, 0x1d379, 0x1d3ff, 0x1d455, 0x1d455, 0x1d49d, 0x1d49d, 0x1d4a0, 0x1d4a1, 0x1d4a3, 0x1d4a4, 0x1d4a7, 0x1d4a8, 0x1d4ad,
                        0x1d4ad, 0x1d4ba, 0x1d4ba, 0x1d4bc, 0x1d4bc, 0x1d4c4, 0x1d4c4, 0x1d506, 0x1d506, 0x1d50b, 0x1d50c, 0x1d515, 0x1d515, 0x1d51d, 0x1d51d, 0x1d53a, 0x1d53a, 0x1d53f, 0x1d53f,
                        0x1d545, 0x1d545, 0x1d547, 0x1d549, 0x1d551, 0x1d551, 0x1d6a6, 0x1d6a7, 0x1d7cc, 0x1d7cd, 0x1da8c, 0x1da9a, 0x1daa0, 0x1daa0, 0x1dab0, 0x1dfff, 0x1e007, 0x1e007, 0x1e019,
                        0x1e01a, 0x1e022, 0x1e022, 0x1e025, 0x1e025, 0x1e02b, 0x1e0ff, 0x1e12d, 0x1e12f, 0x1e13e, 0x1e13f, 0x1e14a, 0x1e14d, 0x1e150, 0x1e2bf, 0x1e2fa, 0x1e2fe, 0x1e300, 0x1e7ff,
                        0x1e8c5, 0x1e8c6, 0x1e8d7, 0x1e8ff, 0x1e94c, 0x1e94f, 0x1e95a, 0x1e95d, 0x1e960, 0x1ec70, 0x1ecb5, 0x1ed00, 0x1ed3e, 0x1edff, 0x1ee04, 0x1ee04, 0x1ee20, 0x1ee20, 0x1ee23,
                        0x1ee23, 0x1ee25, 0x1ee26, 0x1ee28, 0x1ee28, 0x1ee33, 0x1ee33, 0x1ee38, 0x1ee38, 0x1ee3a, 0x1ee3a, 0x1ee3c, 0x1ee41, 0x1ee43, 0x1ee46, 0x1ee48, 0x1ee48, 0x1ee4a, 0x1ee4a,
                        0x1ee4c, 0x1ee4c, 0x1ee50, 0x1ee50, 0x1ee53, 0x1ee53, 0x1ee55, 0x1ee56, 0x1ee58, 0x1ee58, 0x1ee5a, 0x1ee5a, 0x1ee5c, 0x1ee5c, 0x1ee5e, 0x1ee5e, 0x1ee60, 0x1ee60, 0x1ee63,
                        0x1ee63, 0x1ee65, 0x1ee66, 0x1ee6b, 0x1ee6b, 0x1ee73, 0x1ee73, 0x1ee78, 0x1ee78, 0x1ee7d, 0x1ee7d, 0x1ee7f, 0x1ee7f, 0x1ee8a, 0x1ee8a, 0x1ee9c, 0x1eea0, 0x1eea4, 0x1eea4,
                        0x1eeaa, 0x1eeaa, 0x1eebc, 0x1eeef, 0x1eef2, 0x1efff, 0x1f02c, 0x1f02f, 0x1f094, 0x1f09f, 0x1f0af, 0x1f0b0, 0x1f0c0, 0x1f0c0, 0x1f0d0, 0x1f0d0, 0x1f0f6, 0x1f0ff, 0x1f10d,
                        0x1f10f, 0x1f16d, 0x1f16f, 0x1f1ad, 0x1f1e5, 0x1f203, 0x1f20f, 0x1f23c, 0x1f23f, 0x1f249, 0x1f24f, 0x1f252, 0x1f25f, 0x1f266, 0x1f2ff, 0x1f6d6, 0x1f6df, 0x1f6ed, 0x1f6ef,
                        0x1f6fb, 0x1f6ff, 0x1f774, 0x1f77f, 0x1f7d9, 0x1f7df, 0x1f7ec, 0x1f7ff, 0x1f80c, 0x1f80f, 0x1f848, 0x1f84f, 0x1f85a, 0x1f85f, 0x1f888, 0x1f88f, 0x1f8ae, 0x1f8ff, 0x1f90c,
                        0x1f90c, 0x1f972, 0x1f972, 0x1f977, 0x1f979, 0x1f9a3, 0x1f9a4, 0x1f9ab, 0x1f9ad, 0x1f9cb, 0x1f9cc, 0x1fa54, 0x1fa5f, 0x1fa6e, 0x1fa6f, 0x1fa74, 0x1fa77, 0x1fa7b, 0x1fa7f,
                        0x1fa83, 0x1fa8f, 0x1fa96, 0x1ffff, 0x2a6d7, 0x2a6ff, 0x2b735, 0x2b73f, 0x2b81e, 0x2b81f, 0x2cea2, 0x2ceaf, 0x2ebe1, 0x2f7ff, 0x2fa1e, 0xe0000, 0xe0002, 0xe001f, 0xe0080,
                        0xe00ff, 0xe01f0, 0x10ffff));
    }
}
